上周,我们介绍了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') dfOut[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来帮您(一)数据分类汇总; R相关软件及R包安装; 【零基础学绘图】之绘制venn图(五);2、R进阶
【绘图进阶】之六种带中心点的PCA 图和三维PCA图绘制(四);
【绘图进阶】之交互式可删减分组和显示样品名的PCA 图(三);
3.python基础篇
Python入门到底有多简单(三):填充数据;4、数据提交
3分钟学会CHIP-seq类实验测序数据可视化 —IGV的使用手册;
10分钟搞定多样性数据提交,最快半天内获取登录号,史上最全的多样性原始数据提交教程;
20分钟搞定GEO上传,史上最简单、最详细的GEO数据上传攻略;
5、表达谱分析
表达谱分析(二)通路富集分析和基因互作网络图绘制;6、医学数据分析
KING: 样本亲缘关系鉴定工具;【WGS服务升级】人工智能软件SpliceAI助力解读罕见和未确诊疾病中的非编码突变;
隐性疾病trio家系别忽视单亲二倍体现象——天昊数据分析助力临床疾病诊断新添UPD(单亲二倍体)可视化分析工具;
【昊工具】Oh My God! 太好用了吧!疾病或表型的关键基因查询数据库,我不允许你不知道Phenolyzer;
天昊客户服务中心
手机/微信号:18964693703
【本群将为大家提供】
分享生信分析方案
提供数据素材及分析软件支持
定期开展生信分析线上讲座
QQ号:1040471849
作者:大熊
审核:有才
来源:天昊生信团