我正在制作三个散点图,我希望它们都出现在同一个窗口中(但不是在同一个图中)。现在,弹出三个单独的窗口,每个窗口一个。如果我在循环外移动matplotlib.pyplot.show()
,那么它们都被绘制在同一组轴上。
import matplotlib.pyplot
time = [1,2,3]
value = {}
value['x'] = [1,2,3]
value['y'] = [1,4,9]
value['z'] = [1,8,27]
for dimension in ['x', 'y', 'z']:
matplotlib.pyplot.scatter(time, value[dimension])
matplotlib.pyplot.show()
答案 0 :(得分:4)
使用subplot
创建子图:
import matplotlib.pyplot as plt
time = [1,2,3]
value = {}
value['x'] = [1,2,3]
value['y'] = [1,4,9]
value['z'] = [1,8,27]
for k, dimension in enumerate(['x', 'y', 'z']):
plt.subplot(3, 1, k)
plt.scatter(time, value[dimension])
plt.show()
答案 1 :(得分:0)
我认为python版本发生了更改,破坏了上面的代码,但对我而言却没有运行,因为enumerate
现在从0
开始,例如enumerate(iterable, start=0)
是基本情况,因此我进行了以下修改并运行:
import matplotlib.pyplot as plt
time = [1,2,3]
value = {}
value['x'] = [1,2,3]
value['y'] = [1,4,9]
value['z'] = [1,8,27]
for k, dimension in enumerate(['x', 'y', 'z'], 1):
# print(k, dimension)
plt.subplot(3, 1, k)
plt.scatter(time, value[dimension])
plt.show()