我有一个嵌套列表,我需要将其数据绘制在不同的直方图上。
...
...
numbers = [[float(line[1]) for line in chr ] for chr in result]
plt.hist(numbers)
plt.show()
这样做,输出只是一个数字,每个箱中都有不同直方图的条形(例如第一个箱包含每个直方图的第一个条形),而我想要的是拥有单独的直方图。 我尝试做一个 for 循环:
for w in numbers:
plt.hist(w)
plt.show()
但是这样做我每次只获得一个直方图,并且只有当我关闭前一个时我才可以看到下一个。 我该怎么办?
最佳答案
使用subplots 。选择 n_rows
和 n_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 循环中取出,图形仅在屏幕上绘制一次,无需关闭早期的不完整版本。
关于python - 使用matplotlib在python中通过数据列表分别绘制直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15461819/