我已经绘制了4张条形图,显示击球手得分最高的4分、6分、2分、1分,代码如下:

for i in [6,4,2,1]:
ax=delivery[delivery['batsman_runs']==i].batsman.value_counts()[:10].plot.bar(width=0.8)
for p in ax.patches:
        ax.annotate(format(p.get_height()), (p.get_x()+0.10, p.get_height()+1))
mlt.show()

现在这个方法将条形图一个一个地绘制出来。如何在(2x2)的网格中并排绘制这些条形图?

最佳答案

使用pyplot.subplots。在下面的例子中,我使用pyplot作为plt。

fig, axes = plt.subplots((2,2))
arr = [6,4,2,1]
for i in range(len(arr)):
    if i  < 2:
        axes[0][i].bar(i, delivery[delivery['batsman_runs']==arr [i]].batsman.value_counts()[:10],  0.8)
    else:
        axes[1][i - 2].bar(i, delivery[delivery['batsman_runs']==arr [i]].batsman.value_counts()[:10], 0.8)
plt.show()

关于python - 如何在matplotlib的单个矩形网格中绘制多个图?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42322885/

10-10 13:07