如何在同一图中显示多个matplotlib.pyplot图?

时间:2011-12-15 16:36:57

标签: python matplotlib

我正在制作三个散点图,我希望它们都出现在同一个窗口中(但不是在同一个图中)。现在,弹出三个单独的窗口,每个窗口一个。如果我在循环外移动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()

2 个答案:

答案 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()