python - 在 Pycharm : How to turn off interactive mode? 中调试时使用 Matplotlib

标签 python macos matplotlib pycharm python-interactive

首先,我正在使用 Pycharm 调试控制台,并想在我的图表下添加一个标题。根据this answer这可以通过以下方式实现:

plt.plot([2,5,1,2]
fig = plt.figure()
fig.text(.5, .05, "text", ha="center")
plt.show()

但是,这首先向我展示了情节,然后是一个空窗口(在键入第二行之后),之后什么也没有。

我发现这一定是因为 matplotlib 的交互模式,所以我在调试 session 中使用 plt.ioff() 将其关闭,之后 plt.isinteractive() 返回 False。这仍然不会改变它的行为并在 plt.plot(...) 命令之后立即显示绘图。

奇怪的是,当我将 plt.ioff() 放入我的脚本时,它会被忽略并且 plt.isinteractive() 返回 True

import matplotlib.pyplot as plt

plt.ioff()
plt.plot([1,2,3,4,5])
print(plt.isinteractive())

我的系统信息:

  • PyCharm CE 2017.3.2
  • macOS 塞拉利昂 10.12.6
  • Anaconda 环境中的 Python 3.6.3

任何人都可以复制这个吗?是否有另一种方法可以从 Pycharm 调试控制台创建更复杂的图表?我不想每次想绘制更复杂的东西时都改变我的开发环境。

最佳答案

要回答您的问题:使用不同的(非交互式)后端:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

您的代码可能无法正常工作,因为您在绘图之后创建了图形实例。尝试:

fig = plt.figure()
plt.plot([2,5,1,2]
fig.text(.5, .05, "text", ha="center")
plt.show()

关于python - 在 Pycharm : How to turn off interactive mode? 中调试时使用 Matplotlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49284893/

相关文章:

css - 固定元素在滚动时跳来跳去 - 仅在 MacOS Safari 中

objective-c - 如何在 Xcode 中创建一个简单的 Objective-C 命令行项目

python - 如何使用 matplotlib 在单独的图形上创建多个直方图?

python - 如何修复使用 Matplotlib 绘制 NetworkX 图形时图形被截断的问题?

python - 使用 Seaborn 的多条形图

python - 嵌套的相对导入似乎不起作用

python - 无法理解《Learn Python the Hard way》中的第 41 讲

python - 在 heroku 上运行 flask-migrate 会产生错误

Python 数字字符串到时间的转换

android - 我能否使用 React Native 框架在 Mountain Lion 中编写/发布 iOS 和 Android 应用程序?