Plotnine库:是R语言下强大数据可视化ggplot2库的python版

1 说明:
=====
【Plotnine库:是R语言下强大数据可视化ggplot2库的python版】1.1 ggplot2:
1.1.1 是由Hadley Wickham创建的一个十分强大的可视化R包 。
1.1.2 就是说ggplot2,是R语言下的一款强大的、大名鼎鼎的数据可视化绘图库 。
1.2 plotnine:
1.2.1 plotnine是Python中图形语法的一种实现,它基于ggplot2,绘图精美而简单 。
1.2.2 德国学者借鉴R语言ggplot2包的语法开发了plotnine包,几乎实现了对R语言ggplot2语法的直接移植 。

Plotnine库:是R语言下强大数据可视化ggplot2库的python版

文章插图
 
2 准备:
=====
2.1 官网:
https://github.com/has2k1/plotninehttps://plotnine.readthedocs.io/en/stable/index.html2.2 环境:
华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器 。
2.3 安装:
#部分安装pip install plotnine#本机安装sudo pip3.8 install plotnine#推荐国内源安装,超快sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple plotnine#全部安装pip install 'plotnine[all]'# includes extra/optional packages#本机全部安装sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple 'plotnine[all]'3 自带数据集:
==========
3.1 代码:R语言的语法
#自带数据集#实际意义不大,看看效果和语法from plotnine import *from plotnine.data import *#导入数据集mpg.head()#格式和语法d=(ggplot(mpg, aes(x='cty', color='drv', fill='drv'))+ geom_density(alpha=0.1))#显示,区别,不是show,而是打印:printprint(d)3.2 图:
Plotnine库:是R语言下强大数据可视化ggplot2库的python版

文章插图
 
4 虚拟数据:
========
4.1 嵌入式数据:字典法:
4.1.1 代码:
from plotnine import *import pandas as pd#导入数据median_age_dict={'Country': ['New Zealand','Spain','Ireland','Israel','Denmark','Norway','Netherlands','Australia','Italy','Sweden'],'Age': [39.0, 37.0, 35.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0]}median_age=pd.DataFrame(median_age_dict)#绘图,公式最后添加d=(ggplot(median_age,aes(x='Country',y='Age',fill='Country'))#创建图象,传入数据来源和映射+ geom_bar(stat='identity',width=0.5)#建立几何对象,画直方图+ geom_text(aes(x='Country',y='Age',label='Age'),nudge_y=2)#添加数据标签+ coord_flip()#纵向直方图转换为横向直方图+ xlim(median_age['Country'][::-1])#x轴排序,横向直方图的关系+ theme_grey(base_family = "DejaVu Sans" ) #字体,暂时不支持中文)#显示图片print(d)4.1.2 图:
Plotnine库:是R语言下强大数据可视化ggplot2库的python版

文章插图
 
4.2 嵌入式数据:pd内:
4.2.1 代码:
import pandas as pdfrom plotnine import *#嵌入式数据在pd内df = pd.DataFrame({'variable': ['gender', 'gender', 'age', 'age', 'age', 'income', 'income', 'income', 'income'],'category': ['Female', 'Male', '1-24', '25-54', '55+', 'Lo', 'Lo-Med', 'Med', 'High'],'value': [60, 40, 50, 30, 20, 10, 25, 25, 40],})df['variable'] = pd.Categorical(df['variable'], categories=['gender', 'age', 'income'])df['category'] = pd.Categorical(df['category'], categories=df['category'])#绘图d=(ggplot(df, aes(x='variable', y='value', fill='category'))+ geom_col())#dpi是分辨率的单位,是dot per inch(每英寸所打印的点数或线数)#PPI(Pixel Per Inch)表示数字影像的解析度,以区分二者#保存图片#d.save('/home/xgj/Desktop/datavis/plotnine/test.pdf',width=20,height=15,dpi = 300)#显示图片print(d)4.2.2 图:
Plotnine库:是R语言下强大数据可视化ggplot2库的python版

文章插图
 
5 csv文件数据:
===========
5.1 生成csv文件:
5.1.1 复习:《Tablib:是一款简单好用、多种格式的数据管理的Python库》
5.1.2 代码:
#---数据导出csvimport tablib#表头,支持中文headers = ('variable', 'category', 'value')#数据data = https://www.isolves.com/it/sjk/bk/2020-06-28/[('gender', 'Female', 60),('gender', 'Male', 40),('age', '1-24', 50),('age', '25-54', 30),('age', '55+', 20),('income', 'Lo', 10),('income', 'Lo-Med', 25),('income', 'Med', 25),('income', 'High', 40),]#数据集合data=tablib.Dataset(*data, format='csv', headers=headers)#表头显示,注意这里不是True#csv的特色data.export('csv', delimiter=' ', quotechar='|')#指定路径和文件名with open('/home/xgj/Desktop/datavis/plotnine/csvoutdata.csv', 'w', newline='') as f:f.write(data.export('csv'))


推荐阅读