<返回更多

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

2020-06-28    
加入收藏

1 说明:

=====

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/plotnine
https://plotnine.readthedocs.io/en/stable/index.html

2.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,而是打印:print
print(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 pd
from 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 代码:

#---数据导出csv
import tablib
#表头,支持中文
headers = ('variable', 'category', 'value')
#数据
data = [
    ('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'))

5.2 读取csv文件并作图:

5.2.1 代码:

import pandas as pd
from plotnine import *
#读取csv文件
data = pd.read_csv('/home/xgj/Desktop/datavis/plotnine/csvoutdata.csv')
#pd格式化数据
df = pd.DataFrame(data)
#设定和分类
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())
#显示图片
print(d)

5.2.2 图:和4.2.2图一样,此处省略。

===其他方法都是ggplot2的R语言的语法===

===自己整理并分享出来===

 

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>