上周,我們介紹了python的groupby函數(shù)和NA值的填充,我們學(xué)會部分基礎(chǔ)的數(shù)據(jù)處理方法。在獲得基礎(chǔ)數(shù)據(jù)后,我們?yōu)榱颂綄?shù)據(jù)的規(guī)律,通常需要繪圖挖掘數(shù)據(jù)意義。這里我們介紹python自帶的基礎(chǔ)繪圖。
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 默認(rèn)參數(shù) 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水平名稱太長,故橫坐標(biāo)出來的圖看不清。下圖不指定x參數(shù),則默認(rèn)使用行名。
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個(gè)樣品趨勢一致,且第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]:
散點(diǎn)圖
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]:
餅圖參數(shù)是y=,從上圖可以看出,給出的標(biāo)簽值有問題。
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行的所有樣品的豐度數(shù)據(jù),并轉(zhuǎn)置。此時(shí)Cyanobacteria、Proteobacteria變成列,對這兩列數(shù)據(jù)繪制箱體圖
df_sub.sample(5) 隨機(jī)展示5行數(shù)據(jù)
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()
往期相關(guān)鏈接:
1、R基礎(chǔ)篇
excel不熟練怎么辦,R來幫您(一)數(shù)據(jù)分類匯總; R相關(guān)軟件及R包安裝; 【零基礎(chǔ)學(xué)繪圖】之繪制venn圖(五);2、R進(jìn)階
ggplot2參數(shù)設(shè)置麻煩?試試ggpar!;
【繪圖進(jìn)階】之通路與菌的相關(guān)性分析熱圖(六);
【繪圖進(jìn)階】之六種帶中心點(diǎn)的PCA 圖和三維PCA圖繪制(四);
【繪圖進(jìn)階】之交互式可刪減分組和顯示樣品名的PCA 圖(三);
【進(jìn)階篇繪圖】之帶P值的箱體圖、小提琴圖繪制(一);
3.python基礎(chǔ)篇
Python入門到底有多簡單(三):填充數(shù)據(jù);4、數(shù)據(jù)提交
3分鐘學(xué)會微生物多樣性云平臺數(shù)據(jù)分析;
3分鐘學(xué)會CHIP-seq類實(shí)驗(yàn)測序數(shù)據(jù)可視化 —IGV的使用手冊;
10分鐘搞定多樣性數(shù)據(jù)提交,最快半天內(nèi)獲取登錄號,史上最全的多樣性原始數(shù)據(jù)提交教程;
20分鐘搞定GEO上傳,史上最簡單、最詳細(xì)的GEO數(shù)據(jù)上傳攻略;
5、表達(dá)譜分析
表達(dá)譜分析(二)通路富集分析和基因互作網(wǎng)絡(luò)圖繪制;miRNA靶基因預(yù)測軟件__miRWalk 3.0;
6、醫(yī)學(xué)數(shù)據(jù)分析
KING: 樣本親緣關(guān)系鑒定工具;【W(wǎng)GS服務(wù)升級】人工智能軟件SpliceAI助力解讀罕見和未確診疾病中的非編碼突變;
隱性疾病trio家系別忽視單親二倍體現(xiàn)象——天昊數(shù)據(jù)分析助力臨床疾病診斷新添UPD(單親二倍體)可視化分析工具;
【昊工具】Oh My God! 太好用了吧!疾病或表型的關(guān)鍵基因查詢數(shù)據(jù)庫,我不允許你不知道Phenolyzer;
天昊客戶服務(wù)中心
手機(jī)/微信號:18964693703
【本群將為大家提供】
分享生信分析方案
提供數(shù)據(jù)素材及分析軟件支持
定期開展生信分析線上講座
QQ號:1040471849
作者:大熊
審核:有才
來源:天昊生信團(tuán)