2013-11-24 23 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

相关问题