You need to enable JavaScript to run this app. 热力发电蒸汽预测Python程序matplotlib最后绘图不显示及失真问题
优惠活动
大模型
产品
解决方案
定价
更多

热力发电蒸汽预测Python程序matplotlib最后绘图不显示及失真问题

代码问题及绘图异常原因

核心问题1:画布尺寸与子图布局配置错误

你使用的火力发电蒸汽数据集共有39列(38个特征+1个蒸汽产量目标列),代码中最后一段绘图的配置存在明显不合理:

  • 子图布局设为39行×6列,总槽位234个,但实际只需要绘制39×2=78张子图,大量空槽位会导致画布空间浪费,子图被挤压到画布上半部分,下半部分完全空白,出现“无法正常显示”的假象
  • 画布尺寸设为(24, 156)(4×6宽,4×39高),超大尺寸远超普通显示设备的渲染上限,GUI界面下会出现加载失败,命令行渲染时会触发分辨率适配错误,出现文字堆叠、比例失真的问题

核心问题2:缺少子图间距自动调整逻辑

代码没有调用plt.tight_layout(),密集排列的子图的轴标签、刻度会互相遮挡,进一步加剧显示异常。

修复方案

将最后一段绘图代码替换为以下内容即可解决问题:

# 调整子图布局:1个特征对应2个横向排列的子图(分布图+概率图)
train_cols = 2
train_rows = len(train_data.columns)
# 缩小画布尺寸到合理范围
plt.figure(figsize=(4 * train_cols, 3 * train_rows))

i = 0
for col in train_data.columns:
    i += 1
    ax = plt.subplot(train_rows, train_cols, i)
    sns.distplot(train_data[col], fit=stats.norm)
    plt.ylabel(col, fontsize=8)

    i += 1
    ax = plt.subplot(train_rows, train_cols, i)
    res = stats.probplot(train_data[col], plot=plt)

# 自动调整子图间距避免标签重叠
plt.tight_layout()
plt.show()

如果觉得单张图过长不便查看,可以分批绘制特征,比如每10个特征生成一张独立的图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:09:04