【问题标题】:Interactive plotting in Pycharm debug console through matplotlib通过 matplotlib 在 Pycharm 调试控制台中进行交互式绘图
【发布时间】:2017-04-03 16:07:57
【问题描述】:

我正在尝试调试一个 python 脚本,并且我正在使用 Pycharm 社区版 2016.3.2 版。

我想做的是在调试控制台中制作一些绘图(我通过设置断点并启动调试器来激活它),但问题是绘图根本不显示。

官方matplotlib 文档here 提供了一些代码来获得我的问题的可重现示例,特别是这段代码:

import matplotlib.pyplot as plt
plt.ion()
plt.plot([1.6, 2.7])

我觉得奇怪的是,如果我从 pycharm 内部打开一个新的 python 控制台,当执行此代码时,pycharm 会弹出一个显示绘图的新窗口,但如果我将相同的代码粘贴到“调试”中,则不会发生这种情况" 控制台。

在这两种情况下,我都会在控制台中得到以下输出

我发现了一个可能相关的帖子here,但坦率地说,我无法判断这两个问题是否会归结为同一个问题。

【问题讨论】:

    标签: python pycharm


    【解决方案1】:
    • python 3.8.12matplotlib 3.4.3PyCharm 2021.2.3 (Professional Edition)中测试
    • 在 PyCharm 中创建一个纯 Python 项目
      • 文件 新建项目... 纯Python
      • 完成项目设置
    • 创建一个新的python文件:
    • 包导入后,指定交互式后端
      • mpl.use('Qt5Agg')
      • mpl.use('TkAgg')
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    # mpl.use('Qt5Agg')  # interactive mode works with this, pick one
    mpl.use('TkAgg')  # interactive mode works with this, pick one
    
    # Pie chart, where the slices will be ordered and plotted counter-clockwise:
    labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
    sizes = [15, 30, 45, 10]
    explode = (0, 0.1, 0, 0)
    
    fig1, ax1 = plt.subplots()
    
    ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90)
    ax1.axis('equal')
    
    plt.show()
    

    调试控制台

    • 该脚本也适用于调试,但是当调试器关闭时,绘图会显示然后消失,因此包含一个额外的行以防止调试器关闭绘图窗口。

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 2017-04-17
      • 1970-01-01
      • 2016-12-05
      • 2023-04-01
      • 2016-01-09
      • 2012-05-29
      • 2013-10-20
      • 1970-01-01
      相关资源
      最近更新 更多