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

VS Code非Jupyter环境下StatsForecast图表无法显示的问题

解决VS Code非Jupyter环境下StatsForecast图表无法显示的问题

问题场景

在VS Code的普通Python脚本环境(非Jupyter Notebook)中,使用StatsForecast的plot方法生成图表后,调用plt.show()仅返回<Figure size 2400x350 with 1 Axes>提示,但没有弹出独立窗口显示图表。

可行解决办法

方法1:显式指定Matplotlib桌面后端

StatsForecast依赖Matplotlib绘图时,默认后端可能不支持桌面窗口显示。可以在代码开头强制指定适合桌面环境的后端:

import matplotlib
# 根据你的系统选择合适的后端,比如TkAgg/Qt5Agg/Gtk3Agg
matplotlib.use('TkAgg')

import pandas as pd
import matplotlib.pyplot as plt
import os
os.environ['NIXTLA_ID_AS_COL'] = '1'

# 后续原有代码不变
df = pd.read_csv('https://datasets-nixtla.s3.amazonaws.com/air-passengers.csv', parse_dates=['ds'])
from statsforecast import StatsForecast
from statsforecast.models import AutoARIMA

sf = StatsForecast(models=[AutoARIMA(season_length = 12)],freq='M')
sf.fit(df)
forecast_df = sf.predict(h=12, level=[90])

sf.plot(df, forecast_df, level=[90], engine="matplotlib")
plt.show()

注意:如果使用TkAgg后端,Linux系统可能需要先安装tkinter依赖(比如apt install python3-tk),Windows/macOS一般默认自带。

方法2:直接调用返回的Figure对象的show方法

StatsForecast的plot方法会返回Matplotlib的Figure对象,直接调用该对象的show()方法也能触发窗口显示:

# 原有代码不变,仅修改最后两行
fig = sf.plot(df, forecast_df, level=[90], engine="matplotlib")
fig.show()

方法3:检查VS Code的Python解释器配置

确保你使用的Python解释器已经正确安装了Matplotlib及对应后端依赖。可以在终端执行pip install matplotlib确认依赖完整,或者切换到系统默认Python解释器测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:13:19