如何使用matplotlib/pyplot/numpy中的hist()函数创建图片的子图?

Max*_*ler 7 matplotlib

我想创建四个使用hist()函数制作的图片子图,使用matplotlib,pyplot和/或numpy.(我不完全确定这些东西之间的区别是什么.通常我只是根据一个例子导入我需要的东西.)

就我而言,我有一个列表,其中包含四个列表,这些列表描述了在涉及病毒群体的某些模拟结束时病毒颗粒的数量.这四个列表中的每一个都包含30个(整数)数字.大多数数字在0到10之间,或者在450到600之间(这意味着,在前一种情况下,病毒群已经(几乎)灭绝,或者在后一种情况下,病毒群体存活了适应某些变化的条件).

我想在使用hist()函数创建的每个子图中显示病毒群体(几乎)灭绝,适应或介于两者之间的频率.所以我想创建四个子图直方图图片,这些图片在一张大图片中捆绑在一起.在x轴上,显示了模拟结束时的群体,并且在y轴上显示了具有该量的病毒颗粒的病毒群体的频率.

此外,我希望能够为每个子图提供标题并标记x轴和y轴.

我已经尝试过多次查看hist()函数和pyplot中的subplot选项的文档,但我无法弄清楚如何组合这些选项.你能给我一个小例子吗?然后我可能会推断如何根据我的情况调整示例.

Jak*_*kob 21

除非您还不熟悉它,否则您应该查看matplotlib库.
在那里你会发现许多热门的例子来使用add_subplotsubplots命令.

您可能希望实现的最小范例是

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()
Run Code Online (Sandbox Code Playgroud)

这导致了一个情节
在此输入图像描述