• 免費服務熱線
  • 400-065-6886
  • 電話:86(0)512-6295 9990
  • 傳真:86(0)512-6295 9995
新聞中心

pandas和matplotlib繪制簡單圖形

發稿時間:2020-10-12來源:天昊生物



上周,我們介紹了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

作者:大熊

審核:有才

來源:天昊生信團

Copyright ? 2012-2020 天昊基因科技(蘇州)有限公司    All Rights Reserved    蘇ICP備17064027號-1
甘肃11选5复式 内蒙古11选5基本走势图 银行还能给私募基金配资吗 安徽快3开奖结果查询结果 广东十一选五高手 腾讯分分彩开奖号码 山西快乐十分走势 香港九龙图库免费资料大全 伊利股份股票分析报告 体彩论坛 辽宁11选五有什么技巧