【问题标题】:How do I display multiple matplotlib.pyplot plots in the same figure?如何在同一个图中显示多个 matplotlib.pyplot 图?
【发布时间】:2012-01-21 08:22:05
【问题描述】:

我正在制作三个散点图,我希望它们都显示在同一个窗口中(但不在同一个图中)。现在,弹出三个单独的窗口,每个情节一个。如果我将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()

【问题讨论】:

标签: python matplotlib


【解决方案1】:

使用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()

【讨论】:

    【解决方案2】:

    我认为有一个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()
    

    【讨论】:

      猜你喜欢
      • 2012-06-01
      • 1970-01-01
      • 2012-06-20
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多