plotnine怎么导入数据_plotnine:python数据可视化版ggplot2

前言

如果你能看到我们这篇文章,就一定要谢谢你一直关注与支持我们这个微信公众号!我最近乱七八糟的事情就从没停过,其实plotnine包最先是清华大学的赵建树学长告诉我的,我也研究与学习好几个月啦,所以一直也没撰文,实在抱歉。

时至今日,才正式撰写系统性的文章正式介绍python数据可视化的这个新星包:plotnine。对于我之前使用R ggplot2的绘图的人来说,这个包实在是太好用啦,所以也隆重推荐给大家,大家可以再也不用使用绘图语法繁琐或图表元素难以调控的Matplotlib、Seaborn等包啦。

最近正在总结python回归分析的知识,敬请大家期待。

---张杰

Python是一种面向对象的解释型计算机程序设计语言。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。Python语言也有一系列的数据可视化包(packages),包括Pandas、Matplotlib、Seaborn、ggplot、Bokeh、Pygal等(可参考http://pbpython.com/visualization-tools-1.html)

因为R语言拥有ggplot2及其诸多拓展包,数据可视化一直都是python的短板,即使拥有Matplotlib、Seaborn等数据可视化包。直到今年有个德国学者借鉴R语言ggplot2包的语法开发了plotnine包,几乎实现了对R语言ggplot2语法的直接移植。我们先看一段最简单的plotnine的语法与图表,语法与R语言基本无异,只是在外面加了一个括号,图表的效果跟R ggplot2的效果相同。

from plotnine import *      #导入plotnine包的绘图函数

from plotnine.data import * #导入plotnine自带的数据集

(ggplot(mtcars,aes('wt','mpg',color='factor(gear)'))

+geom_point()

+stat_smooth(method='lm')

+facet_wrap('~gear'))

plotnine的官方网站:https://plotnine.readthedocs.io/en/stable/index.html,plotnine的安装语句:

#使用pip语句

$pip install plotnine# 1. should be sufficient for most

$pip install 'plotnine[all]'# 2. includes extra/optional packages

#或者使用conda语句

$conda install -c conda-forge plotnine

R语言ggplot2和python的plotnine都是基于LelandWilkinson在Grammar of Graphics中提出的图表绘制理论,可以通过图层的添加方法实现数据可视化,简单而易于理解与操作。下面我就用一个数据集展示分面散点图的绘制效果:

Example1. 分面散点图1

from plotnine import *         #导入plotnine包的绘图函数

from plotnine.data import * #导入plotnine自带的数据集

import pandas as pd

import numpy as np

filename=' /Jupyter_Notebook/Alzheimers.csv'

file = open(filename,errors='ignore')#encoding='utf_8_sig'')

df=pd.read_csv(file)

base_plot=(ggplot(df, aes(x = 'tau', y ='SOD', fill = 'Class')) +

geom_point(size=3,shape='o',colour='black',show_legend=False)+

stat_smooth(method = 'lowess',show_legend=False)+

facet_wrap('~ Class'))

print(base_plot)

Example2.分面散点图2

base_plot=(ggplot(df, aes(x = 'tau', y ='SOD', fill='age', size = 'age')) +

geom_point(shape='o',colour='black',alpha=0.95) +

scale_fill_gradient2(low='#00A08A',mid='white',high='#FF0000',midpoint= df['age'].mean())+

facet_wrap( '~ Class'))

print(base_plot)

Example3.分面散点图3

df['gender']=df['gender'].astype('category')

df['gender'].cat.categories=['Female','Male']

base_plot=(ggplot(df, aes(x = 'tau', y ='SOD', fill= 'Class', size = 'age')) +

#其气泡的颜色填充由Class映射,大小由age映射

geom_point(shape='o',colour='black',alpha=0.7) +

#设置气泡类型为空心的圆圈,边框颜色为黑色,填充颜色透明度为0.7

facet_grid('gender ~ Class') )#性别Gender为行变量、类别Class为列变量

print(base_plot)

Example4.箱型图

base_plot=(ggplot(df, aes('Class', 'tau'))+

geom_boxplot(aes(fill = 'Class'),notch = False))

print(base_plot)

Example5.小提琴图

base_plot=(ggplot(df, aes('Class', 'tau'))+

geom_violin(aes(fill = 'Class'),trim = False)+

geom_boxplot(width = 0.2))

print(base_plot)

这两天还在家发疯图强,专门制作了plotnine的学习手册,供大家更加深入地学习与使用。该手册详细地总结概括了plotnine的主要函数与语法内容,包括geoms和stat函数、theme、scale和faceting等。

该手册的领取方式:

1.  将该文章转发到微信朋友圈或者微信群,获得10个以上的赞;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值