1

我有一个嵌套列表,我需要将其数据绘制在不同的直方图上。

    ...
    ...
    numbers = [[float(line[1]) for line in chr ] for chr in result]
    plt.hist(numbers)
    plt.show()

这样做,输出是一个唯一的数字,每个 bin 中有不同直方图的条形(例如,第一个 bin 包含每个直方图的第一个条形)而不是我想要的是有单独的直方图。我试图做一个for循环:

    for w in numbers:
       plt.hist(w)
       plt.show()

但是这样做我每次只能获得一个直方图,并且只有当我关闭前一个时,我才能看到下一个。我该怎么办?

4

1 回答 1

3

使用子图。选择n_rowsn_columns这样您就可以制作len(numbers)子图。i从 1 开始,而不是 0。

i = 1
for w in numbers:
    plt.subplot(n_rows, n_columns, i)
    i += 1
    plt.hist(w)
plt.show()

通过plt.show()退出 for 循环,图形仅在屏幕上绘制一次,无需关闭早期的不完整版本。

于 2013-03-17T14:36:57.967 回答