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

Matplotlib设置figsize后绘图尺寸未变化,是否与sns.set_style有关?

Matplotlib scatter_matrix 画布尺寸不生效问题解答

1. 提前设置plt.figure(figsize=(12,6))不生效的原因

  • 核心原因是pd.plotting.scatter_matrix()默认会自动创建全新的画布对象,不会复用你提前通过plt.figure()生成的画布。你提前创建的126尺寸画布没有被绘图逻辑使用,就是输出日志中显示的<Figure size 864x432 with 0 Axes>(12、6英寸对应默认72dpi下的像素就是864432),实际的散点矩阵图是scatter_matrix内部调用默认尺寸新建画布绘制的。
  • 修复方案:直接将尺寸参数传入scatter_matrix方法即可,修改后代码如下:
pd.plotting.scatter_matrix(Effect_Wf_f, figsize=(12,6))
plt.show()

如果需要提前创建画布复用,也可以将生成的轴对象传入方法:

fig, ax = plt.subplots(figsize=(12,6))
pd.plotting.scatter_matrix(Effect_Wf_f, ax=ax)
plt.show()

2. sns.set_style('whitegrid')是否是问题诱因

  • 该配置不会导致画布尺寸失效。sns.set_style()仅控制图表的样式属性,包括背景、网格线样式、坐标轴刻度、字体外观等,不会修改画布尺寸相关的默认配置。如果默认画布尺寸被修改,通常是调用了sns.set()全局配置、或是手动修改了matplotlib.rcParams['figure.figsize']参数导致的,和set_style无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 14:54:00