关于python:如何使用matplotlib子图垂直拉伸图形

How to vertically stretch graphs with matplotlib subplot

本问题已经有最佳答案,请猛点这里访问。

使用下面的代码,我尝试使用matplotlib在一张图片中绘制12个不同的柱状图。

1
2
3
4
5
6
7
8
9
10
11
12
for graph in range(1,13):
    name = all_results[graph-1]
    plt.subplot(4,3,graph,
                title = name)
    plt.tight_layout()
    current_model = name
    plt.hist(all_val_accuracies[current_model],
             #range = (0.49, 0.58),
             bins = 50)
    plt.xlabel('Accuracy')
    plt.ylabel('Frequency')
    plt.axis([0.48, 0.58, 0, 50])

使用这个代码,所有的柱状图都以我指示的方式绘制在一个图像中。

然而,图形本身被压缩到了一个你再也看不见的程度。

我该怎么做才能将这12个柱状图绘制在一个图像中,并且每个柱状图都可以清晰地看到?


您应该能够设置绘图的大小

1
matplotlib.Figure.set_size_inches

要使用它,您需要保存Figure对象。您可以将其包含在代码中,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
for graph in range(1,13):
    name = all_results[graph-1]
    fig, axs = plt.subplot(4,3,graph,
                           title = name)
    plt.tight_layout()
    current_model = name
    plt.hist(all_val_accuracies[current_model],
             #range = (0.49, 0.58),
             bins = 50)
    fig.set_size_inches(12, 12)
    plt.xlabel('Accuracy')
    plt.ylabel('Frequency')
    plt.axis([0.48, 0.58, 0, 50])