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

Python绘图代码陷入无限循环,如何终止循环并排查代码问题?

解决Matplotlib绘图窗口循环弹出的问题

嘿,我来帮你搞定这个Matplotlib窗口循环弹个不停的问题~先拆解下你的代码里的核心问题:

为啥会出现循环弹出的情况?

  • 你写了for column in df.columns的循环,但循环体完全没用到column变量,反而每次都硬编码绘制第2列(索引1)和第3列(索引2)
  • 这个循环会遍历数据框的每一列,每执行一轮循环就会弹出这两个窗口,关闭后循环继续走下一轮——直到遍历完所有列,但因为每次都画相同的内容,看起来就像无限循环停不下来

修复方案分两种场景:

场景1:你只需要绘制指定的两列

那完全不需要for循环,直接单独绘制就行,代码如下:

import pandas as pd
import matplotlib.pyplot as plt

file_path = ("C://Users/RichardStone/Pycharm/Project/train_data.csv")
df = pd.read_csv(file_path)

# 绘制第2列(索引1)
plt.figure('Train data: Jitter (Local)')
plt.title('Feature: Jitter (Local)')
plt.plot(df.iloc[:, [1]])
plt.show()

# 绘制第3列(索引2)
plt.figure('Train data: Jitter (local, absolute)')
plt.title('Feature: Jitter (local, absolute)')
plt.plot(df.iloc[:, [2]])
plt.show()

场景2:你本来想遍历所有列逐一绘图

那就要用循环变量column来获取对应列,而不是硬编码索引,同时可以在每次绘图后关闭当前图释放资源:

import pandas as pd
import matplotlib.pyplot as plt

file_path = ("C://Users/RichardStone/Pycharm/Project/train_data.csv")
df = pd.read_csv(file_path)

for column in df.columns:
    plt.figure(f'Train data: {column}')
    plt.title(f'Feature: {column}')
    plt.plot(df[column])
    plt.show()
    # 关闭当前图,避免内存占用,也能防止窗口残留问题
    plt.close()

紧急终止当前循环的方法

如果现在程序还在运行,直接在终端按Ctrl+C就能强制停止哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:07:43