我有一个嵌套列表,我需要在不同的直方图上绘制数据。
...
...
numbers = [[float(line[1]) for line in chr ] for chr in result]
plt.hist(numbers)
plt.show()
这样做,输出是一个唯一的数字,每个bin中不同直方图的条形(例如第一个bin包含每个直方图的第一个条形)而不是我想要的是具有单独的直方图。 我试着做一个循环:
for w in numbers:
plt.hist(w)
plt.show()
但这样做我每次只获得一个直方图,只有当我关闭前一个时,我才能看到下一个直方图。 我该怎么办?
答案 0 :(得分:3)
使用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循环中取出,图形仅在屏幕上绘制一次,并且无需关闭早期的不完整版本。