2013-11-24 59 views
3

我想使用matplotlib,pyplot和/或numpy創建四個使用hist()函數製作的圖片的子圖。 (我不完全知道什麼這些東西之間的差別通常我只是導入任何我需要的。 - 基於爲例)如何使用matplotlib/pyplot/numpy中的hist()函數創建圖片的子圖?

在我的情況,我有AA名單由四個列表描述什麼量的病毒顆粒在一些涉及病毒種羣的模擬結束時。這四個列表中的每一個都包含30個(全部)數字。大多數數字在0到10之間,或者在450到600之間(這意味着在前一種情況下,病毒羣體已經(幾乎)已經滅絕,或者在後一種病毒中,病毒羣體已經存活並且適應某些變化的條件)。

我想在每個使用hist()函數創建的子圖中顯示病毒總體(幾乎)滅絕,已經適應或者介於兩者之間的頻率。所以我想創建四個子圖直方圖圖片,它們在一張大圖中捆綁在一起。在x軸上,顯示仿真結束時的總體數量,並在y軸上顯示具有這種量的病毒顆粒的病毒羣體的頻率。

此外,我希望能夠給每個subplots一個標題和標籤的x和y軸。

我已經嘗試通過查看有關hist()函數和pyplot中的subplot選項的文檔來做這無數次,但我無法弄清楚如何組合這些選項。請給我一個這樣的小例子嗎?然後,我可能會推斷出如何根據我的情況調整示例。

回答

9

除非您不熟悉它,否則您應該查看matplotlib gallery
在那裏你會發現許多熱門的例子使用add_subplotsubplots命令。

的你propably想達到的最小的例子是

import matplotlib.pyplot as plt 
import numpy as np 

data=np.random.random((4,10)) 
xaxes = ['x1','x2','x3','x4'] 
yaxes = ['y1','y2','y3','y4'] 
titles = ['t1','t2','t3','t4'] 

f,a = plt.subplots(2,2) 
a = a.ravel() 
for idx,ax in enumerate(a): 
    ax.hist(data[idx]) 
    ax.set_title(titles[idx]) 
    ax.set_xlabel(xaxes[idx]) 
    ax.set_ylabel(yaxes[idx]) 
plt.tight_layout() 

這會導致情節像
enter image description here

+0

感謝雅各布!我已經看過你提到的畫廊,但可能不夠小心。 –

+0

@MaxMuller如果這解決了您的問題,請接受它 – tacaswell

相關問題