咨询热线:400-065-6886
首页>>技术支持>>科研进展

pandas和matplotlib绘制简单图形


目录

1.加载包

2.数据读取

3.绘图

    3.1折线图

    3.2条形图

    3.3散点图

    3.4饼图

    3.5箱体图

    3.6直方图

    3.7同一类型的一页多图


上周,我们介绍了python的groupby函数和NA值的填充,我们学会部分基础的数据处理方法。在获得基础数据后,我们为了探寻数据的规律,通常需要绘图挖掘数据意义。这里我们介绍python自带的基础绘图。



In [1]:
%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd




In [2]:

df = pd.read_excel('data/ASV/phylum.xlsx')
df

Out[2]:





折线图
plot 默认参数 kind=line ,以下3种写法等同。
df.plot(x='phylum',y='ST01')
df.plot(x='phylum',y='ST01',kind='line')
df.plot.line(x='phylum',y='ST01')


In [3]:
df.plot.line(x='phylum',y='ST01')
plt.show()

Out[3]:



x轴指定 phylum,由于phylum水平名称太长,故横坐标出来的图看不清。下图不指定x参数,则默认使用行名。

In [4]:
df.plot(y='ST01')plt.show()

Out[4]:


In [5]:
df.plot(y=['ST01','ST02','ST03','ST04','ST05'])plt.show()

Out[5]:


由图可知,5个样品趋势一致,且第4行和第24行的门是丰度最高的门。

条形图

In [6]:
df.plot.bar(x='phylum',y='ST01')
plt.show()

Out[6]:



In [7]:
df.plot.bar(x='phylum',y=['ST01','ST02','ST03','ST04','ST05'])
plt.show()

Out[7]:



kind = 'barh',则条形图水平绘制

In [8]:
df.plot.barh(x='phylum',y=['ST01','ST02','ST03','ST04','ST05'])
plt.show()

Out[8]:



散点图
In [9]:
df.plot.scatter(x='phylum',y='ST01')
plt.show()

Out[9]:



In [10]:
ax = df.plot.scatter(x='phylum',y='ST01',color='green',label='ST01')

df.plot.scatter(x='phylum',y='ST02',color='red',label='ST02',ax=ax)
plt.show()

Out[10]:



In [11]:
df.plot.scatter(x='ST01',y='ST02')
plt.show()

Out[11]:



饼图
In [12]:
df.plot.pie(y='ST01')
plt.show()

Out[12]:



饼图参数是y=,从上图可以看出,给出的标签值有问题。

In [13]:
df.index = df.phylum
df.plot.pie(y='ST01',legend=False)
plt.savefig('test.png')

Out[13]:




箱体图
In [14]:
df.plot.box(y='ST01')
plt.show()

Out[14]:

 


使用loc提取Cyanobacteria、Proteobacteria行的所有样品的丰度数据,并转置。此时Cyanobacteria、Proteobacteria变成列,对这两列数据绘制箱体图

df_sub.sample(5) 随机展示5行数据

In [15]:
df_sub = df.loc[['Cyanobacteria','Proteobacteria'],'ST01':'ST20'].T
df_sub.sample(5)

Out[15]:



In [16]:
df_sub.plot.box(y=['Cyanobacteria','Proteobacteria'])
plt.show()

Out[16]:



直方图

In [17]:
df_sub.plot.hist(y='Cyanobacteria')
plt.show()

Out[17]:



In [18]:
df_sub.plot.hist(y=['Cyanobacteria','Proteobacteria'])
plt.show()

Out[18]:



同一类型的一页多图

In [19]:
df.plot(kind='line',y=['ST01','ST02','ST03','ST04'],subplots=True,layout=(2,2),figsize=(20,10),title="Four Sample's Abundance")
plt.show()


 


往期相关链接:

1、R基础篇
excel不熟练怎么办,R来帮您(一)数据分类汇总
如何使用Rstudio练习R基础教程
R相关软件及R包安装
【零基础学绘图】之气泡图绘制(六)
【零基础学绘图】之绘制venn图(五)
【零基础学绘图】之绘制barplot柱状图图(四)
【零基础学绘图】之绘制heatmap图(三)
【零基础学绘图】之绘制PCA图(二)
【零基础学绘图】之alpha指数箱体图绘制(一)


2、R进阶
ggplot2参数设置麻烦?试试ggpar!
【绘图进阶】之带连线的箱体图绘制(8)
【绘图进阶】之配对箱体图绘制(七)
【绘图进阶】之通路与菌的相关性分析热图(六)
【绘图进阶】之lefse定制化绘图(五)
【绘图进阶】之六种带中心点的PCA 图和三维PCA图绘制(四)
【绘图进阶】之交互式可删减分组和显示样品名的PCA 图(三)
【绘图进阶】之绘制PCA biplot图(二)
【进阶篇绘图】之带P值的箱体图、小提琴图绘制(一)


3.python基础篇
Python入门到底有多简单(三):填充数据
【Python入门到底有多简单】之groupby数据分类汇总(二)
Python入门到底有多简单(一):数据读写与输出


4、数据提交
3分钟学会微生物多样性云平台数据分析;
3分钟学会CHIP-seq类实验测序数据可视化 —IGV的使用手册
10分钟搞定多样性数据提交,最快半天内获取登录号,史上最全的多样性原始数据提交教程
20分钟搞定GEO上传,史上最简单、最详细的GEO数据上传攻略


5、表达谱分析
表达谱分析(二)通路富集分析和基因互作网络图绘制
如何对GEO数据进行差异分析
miRNA靶基因预测软件__miRWalk 3.0


6、医学数据分析
KING: 样本亲缘关系鉴定工具
【WGS服务升级】人工智能软件SpliceAI助力解读罕见和未确诊疾病中的非编码突变
隐性疾病trio家系别忽视单亲二倍体现象——天昊数据分析助力临床疾病诊断新添UPD(单亲二倍体)可视化分析工具
【昊工具】Oh My God! 太好用了吧!疾病或表型的关键基因查询数据库,我不允许你不知道Phenolyzer

天昊客户服务中心
手机/微信号:18964693703

【本群将为大家提供】

分享生信分析方案

提供数据素材及分析软件支持

定期开展生信分析线上讲座

QQ号:1040471849

 
 

作者:大熊

审核:有才

来源:天昊生信团

 

微信扫一扫
关注该公众号

 

 




上海昊为泰生物科技有限公司 版权所有 沪ICP备18028200号-1
地址:上海市浦东新区康桥路787号9号楼 邮箱:techsupport@geneskies.com 电话:400-065-6886