【问题标题】:How to show matplotlib plot in one window如何在一个窗口中显示 matplotlib 图
【发布时间】:2018-01-24 11:01:57
【问题描述】:

我想在一个窗口中显示一个绘图,而不是每次运行 PyQT 脚本时都打开另一个窗口。

这是我的代码:

        fig2 = plt.figure()
        ax2 = fig2.add_subplot(111, aspect='equal')
        ax2.add_patch(
            patches.Circle(
                (x1, y1),
                r1,
                fill=False
            )
        )

        ax2.add_patch(
            patches.Circle(
                (x2, y2),
                r2,
                fill=False
            )
        )

        ax2.add_patch(
            patches.Circle(
                (x3, y3),
                r3,
                fill=False
            )
        )
        plt.plot([x_centroid], [y_centroid], 'ro')
        plt.show()

每当我更改变量时,都会弹出新窗口。我希望它在 1 个窗口中。

【问题讨论】:

  • 肯定有很多选项可以在窗口中显示绘图。这个问题完全不清楚。请清楚地说明您遇到的问题,您为解决问题所做的工作以及失败的程度。因为这似乎是您编写的某些代码的问题,所以以minimal reproducible example 的形式包含它。另请阅读How to Ask
  • 我使用了 pyplot.show()。但是当我传递其他值时,它会创建更多窗口,而我希望它显示在一个窗口中。
  • 以上评论的哪一部分你不明白?
  • 我已经编辑了我的问题。
  • fig2 = plt.figure() 创建一个新图形。因此,如果您运行该脚本,难怪它会显示一个新数字。除此之外,您还不清楚您希望如何管理您的工作流程。你怎么运行这个? “更改我的变量”是什么意思?

标签: python-3.x matplotlib


【解决方案1】:

据我所知,一旦现有的 python 进程开始在该进程中运行另一个脚本,就没有简单的方法可以连接到它。

您可以选择在交互式会话中工作,例如在 IPython 中。在那里你可以创建你的情节并随着你的前进而操纵它。

例如

   1: import matplotlib.pyplot as plt
   2: import numpy as np
   3: fig, ax = plt.subplots()
   4: line, = ax.plot([1,3,2])
   5: plt.ion()
   6: plt.show()                   # shows the figure
   7: line2, = plt.plot([2,2,1])   # inside the figure shows another line
   8: line.remove()                # removes the first line from the figure

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2013-11-30
    相关资源
    最近更新 更多