在循环中绘制直方图并将它们并排显示

时间:2017-10-25 00:52:54

标签: python matplotlib

我试图绘制n个直方图并将它们并排显示在一起(不是在相同的直方图中。

我试过这段代码:

for r in range(1, n):
    plt.hist(combined['apple{} tomato'.format(n)], bins = bin, alpha=0.5, color='#0bf9ea')
    plt.hist(combined['apple{} potato'.format(n)], bins =  bin, alpha=0.5, color='#ff7fa7')
    plt.show()

当我输入此代码时,它会显示直方图1,然后当我关闭图形时,会出现直方图2,依此类推直到直方图n。

for r in range(1, n):
    plt.hist(combined['apple{} tomato'.format(n)], bins = bin, alpha=0.5, color='#0bf9ea')
    plt.hist(combined['apple{} potato'.format(n)], bins =  bin, alpha=0.5, color='#ff7fa7')
plt.show()

然而,当我尝试这段代码时,它会向我显示一个直方图,其中包含所有直方图。

有没有办法在一个窗口中分别显示所有n个不同的直方图?

谢谢:D

2 个答案:

答案 0 :(得分:3)

您是否尝试过使用matplotlib.pyplot.subplot()?

 for r in range(1,n): 
    matplotlib.pyplot.subplot(nrows, ncols, r) 
    plt.hist() 

答案 1 :(得分:2)

试试这个:

a = plt.subplots(n-1, 2)[1].ravel()

for r in range (1, n):
    a[0].hist(combined['apple{} tomato'.format(n)], bins = bin, alpha=0.5, color='#0bf9ea')
    a[1].hist(combined['apple{} potato'.format(n)], bins =  bin, alpha=0.5, color='#ff7fa7')

plt.show()