【问题标题】:Matplotlib produces unwanted tabbed windows for pltMatplotlib 为 plt 生成不需要的选项卡式窗口
【发布时间】:2019-04-17 14:40:53
【问题描述】:

我只是想使用 python(anaconda 安装)和 matplotlib 绘制两个单独的图(即在单独的窗口中绘制)。但是当我运行下面的示例代码时,我得到一个包含两个选项卡式窗口的窗口。

plt.figure(1)
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)
plt.show()

plt.figure(2)
s = 1 + np.sin(4*np.pi*t)
plt.plot(t, s)
plt.show()

【问题讨论】:

  • 您在哪个环境中运行代码?哪个操作系统、IDE等?顺便说一句,只需要一次调用 plt.show() 。它将显示所有图形并启动 matplotlib 事件循环。
  • 我得到了两个带有两个图表的独立窗口...
  • 我在 Spyder 中运行它,我在两个不同的窗口中得到了两个单独的图表
  • 感谢您的回答。我正在使用运行 OS 10.14.4 (Mojave) 的 Macbook,并且使用 anaconda3 python。如果我从 Spyder 运行,IDE 内会出现两个单独的窗口,但如果我然后执行 %matplotlib qt 使它们出现在 IDE 外,我会得到这个选项卡式窗口。当我使用 pythonw 从终端运行时,我也会得到标签。 matplotlib 的后端是“MacOSX”。我注意到我以前运行的“TkAgg”后端在重新安装 anaconda 后不再可用,想知道这是否已连接?

标签: python matplotlib plot anaconda


【解决方案1】:

我刚刚在 pycharm 中运行了您的代码,它完全按照您的意愿运行。我认为您运行它的环境导致了这个问题。也只能在最后使用 plt.show() (无论如何这可能会解决它)。

如果这不起作用,您可以尝试使用子图。

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure(1)
ax1 = fig.add_subplot(121)
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
ax1 = plt.plot(t, s)


ax2 = fig.add_subplot(122)
s = 1 + np.sin(4*np.pi*t)
ax2 = plt.plot(t, s)
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 2020-05-25
    • 2023-01-26
    • 2011-04-05
    • 1970-01-01
    • 2010-12-24
    相关资源
    最近更新 更多