You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行matplotlib绘制箱线图代码后无弹窗显示如何解决?

问题:箱线图运行后无法弹出显示窗口

代码运行无报错,但执行结束后未弹出箱线图展示窗口,复现代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(triesAndTime, columns = ["steps", "time"])
df.boxplot(column=["steps", "time"], rot=90)
plt.show()

执行print(df)输出的数据集内容正常,如下:

steps      time
0     4790  0.255929
1     2450  0.254098
2    10466  0.341369
3      821  0.223506
4    10225  0.291951
..     ...       ...
95    2925  0.270130
96  215577  2.398803
97   43084  0.598177
98   34837  0.584912
99    5826  0.253654

[100 rows x 2 columns]
排查方向与解决方法
  • 优先检查matplotlib后端配置:非交互式环境下运行脚本时,如果没有指定可用的GUI后端,plt.show()无法唤起独立绘图窗口。
    修复方式:在导入matplotlib.pyplot前显式指定通用的TkAgg后端(依赖Python自带的tkinter库,多数环境无需额外安装),修改后代码开头如下:
    import matplotlib
    matplotlib.use('TkAgg')
    # 后续原有导入逻辑不变
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    注意:matplotlib.use()必须在导入pyplot前调用,否则配置不会生效。
  • 检查环境交互模式状态:如果在IPython、Jupyter类环境运行,可在绘图代码前加一行plt.ion()开启matplotlib交互模式,确保绘图渲染逻辑正常触发。
  • 排除IDE内置输出拦截:PyCharm、VSCode等IDE的Python插件默认会将matplotlib绘图输出到IDE内置的科学工具面板,不会弹出独立窗口,可在IDE设置中关闭「Matplotlib内置绘图输出」类选项,即可唤起独立窗口。
  • 额外注意:当前数据集steps列数值最高达21万,time列最高仅2.4,两列数值量级差异过大,即使窗口正常弹出,同坐标轴绘制也会导致time列的箱线被压缩成贴近轴的细线,难以观察。建议拆分为子图分别绘制,参考代码:
    import matplotlib
    matplotlib.use('TkAgg')
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    df = pd.DataFrame(triesAndTime, columns = ["steps", "time"])
    # 创建1行2列的子图分别承载两个字段的箱线图
    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))
    df.boxplot(column="steps", ax=ax1, rot=90)
    df.boxplot(column="time", ax=ax2, rot=90)
    # 自动调整子图间距避免标签重叠
    plt.tight_layout()
    plt.show()
    

内容的提问来源于stack exchange,提问作者Tangobones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:39:35