Plotnine是什么
今天介绍一个在python众多的可视化包之中比较不出名的一个但是让人眼前一亮的包——plotnine。学过R语言的人都知道R的gglpot2库的可视化功能非常强大,不管是图表种类还是配色等,都让人觉得“优雅”;plotnine相当于把R语言的ggplot2功能搬到了python的生态里。由于在两个语言生态里面的叫法不同,很多人并不知道plotnine和ggplot2的语法逻辑和制图效果其实是非常相似的。
注意:看此篇文章的同学需有一定的python和pandas的基础~
Plotnine的语法逻辑
plotnine是由数据绘图部分+图表美化部分构成,绘图的方式采用图层叠加的方式,即类似我们用PS画图的时候一层层功能叠加。先画数据图再叠加数据统计方式,颜色,主题,坐标系等,不同的功能之间采用“+”相加,如下示意:
图表对象=(功能函数1+功能函数2+功能函数3+功能函数4…)
这些功能函数中一般指定数据和指定图表类型的函数是必选的,即要画一个图必须要输入的函数,其他是可选的,实际使用的时候语法结构如下。
plot=(
ggplot(参数)
+geom_xxx(参数)/stat_xxx(参数)
+scale_xxx(参数)
+coord_xxx(参数)
+facet_xxx(参数)
+guides(参数)
+theme(参数)
)
以上注意:plot对象是由一个()包住各种函数的,函数里面嵌参数,甚至参数里面嵌带括号的参数,所以可能会有非常多括号,很多函数是以相同的字母开头的同类型的函数,xxx需要根据实际情况替换为实际的函数名称。
必选函数
gglot
函数:必须有,表示基础图层,不出现图形元素;
函数中的参数有:ggplot(data=输入的数据,mapping=aes(数据和映射关系)),mapping中的参数不止可以映射数据关系,还可以控制颜色大小或者形状。
geom_xxx/stat_xxx
类函数:必须有,这一类函数表示几何图层或统计变换;
常用的geom_xxx
函数有:
散点图:geom_point();
柱形图:geom_bar();
统计直方图:geom_histogram();
箱型图:geom_boxplot();
折线图:geom_line()
可选函数
scale_xxx(参数):调整映射变量里面的具体细节;
coord_xxx(参数):笛卡尔坐标(poltnine暂时无法实现极坐标和地理空间坐标)
facet_xxx(参数):分面系统,绘制多张子图时使用
guides(参数):图例调整
theme(参数):主题设定,图表背景颜色,网格线间隔,颜色,坐标轴字体等
xlim/ylim(参数):调整x y坐标轴细节
还有其他许多可选函数用于调整图表的细节美化部分,在此就不一一列举了。
案例拆解-柱状图
由于以上的函数中的参数也有非常多,不能一一讲明,下面通过一个柱状图的案例拆解来了解绘图的实际使用,加深对Plotnine的印象。
案例:有一份如下数据的表格,将表格中的数据进行降序排列,并且用柱状图绘制图表。
动物种类 | 数量 |
---|---|
猪 | 20 |
牛 | 39 |
羊 | 42 |
狗 | 47 |
兔 | 54 |
代码示例
import pandas as pd