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

如何在Python程序中插入Matplotlib饼图并解决图表弹窗卡住问题

问题原因

你的饼图窗口无响应确实和程序中的无限循环有关,核心有两点:

  • Matplotlib的窗口拖拽、关闭等交互操作依赖自身的事件循环,time.sleep(3)会完全阻塞主进程,没有给Matplotlib分配处理窗口事件的资源,导致窗口无响应。
  • 默认plt.show()为阻塞模式,放在死循环中会打断程序执行流程,也会影响窗口交互逻辑。
解决方法

将你注释掉的代码替换为以下版本,核心是用plt.pause()替代time.sleep(),前者在等待的同时会处理Matplotlib的窗口事件,保证窗口可以正常响应操作:

labels = []
sizes = []
for x, y in process_time.items():
    labels.append(x)
    sizes.append(y)
# 每次绘制前清空画布,避免多次绘制内容重叠
plt.clf()
plt.pie(sizes, labels=labels)
plt.axis('equal')
# 非阻塞显示窗口
plt.show(block=False)
# 等待3秒,同时处理窗口交互事件
plt.pause(3)
plt.close('all')

如果需要窗口保留到你手动关闭后再继续执行后续逻辑,可以将plt.pause(3)和plt.close('all')替换为plt.show()即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:36:03