使用matplotlib按数据列表分别绘制直方图
我有一个嵌套列表,里面的数据需要在不同的直方图上绘制。
...
...
numbers = [[float(line[1]) for line in chr ] for chr in result]
plt.hist(numbers)
plt.show()
这样做的话,输出的结果只有一个图形,里面的条形图都是不同直方图的,放在同一个区间里(比如第一个区间里包含了每个直方图的第一个条形图)。我想要的是每个直方图分开显示。
我试着用一个循环:
for w in numbers:
plt.hist(w)
plt.show()
但是这样的话,我每次只能看到一个直方图,想要看到下一个,得先关闭前一个。那我该怎么做呢?
1 个回答
3
使用子图功能。选择合适的行数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()
放在循环外面,这样图形只会在屏幕上显示一次,就不需要关闭之前那些未完成的版本了。