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

修改Matplotlib图表DPI时出现布局变形的问题咨询

Matplotlib修改DPI导致图表布局变形问题

仅修改图表DPI时发现绘图出现“变形”情况。原本以为DPI完全不会影响图表/坐标轴内元素的布局,希望有人解惑。

最小可复现示例(MWE)

创建两个数据和figsize完全相同的图表,用不同DPI渲染(改变像素数量)。可以看到高DPI版本的图例框(以及文本大小)在图表中占据了更多垂直空间;当DPI值更高时(如450),图例框甚至会比坐标轴区域还高,图表严重变形。

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 3, 5, 9, 11])
y_vals = [x*n for n in np.arange(0.5, 1.5, 0.1)]  # Random data for visualization purposes
dpi_lst = [150, 300]

for dpi in dpi_lst:
    fig = plt.figure(figsize=(4, 3), dpi=dpi)
    ax = fig.subplots()
    for n, y in enumerate(y_vals):
        ax.plot(x, y, label=f'Plot #{n}')
    ax.legend(loc='upper left')
    ax.set_title(f'DPI={dpi}')
    ax.grid()

plt.show()

这可能又是dpi与figsize的讨论,但根据相关帖子及我的Matplotlib使用经验(除图例外),一直认为figsize会改变图表内部布局,而DPI仅缩放渲染分辨率。

这给我带来了困扰:用交互式绘图调整出满意的布局,但保存时需要更高DPI以提升画质;但高分辨率下交互式绘图很麻烦,图表常超出屏幕,不知如何在低分辨率预览时保证与高分辨率保存的布局完全一致。


编辑

  • 在MWE中添加了标题代码
  • 检查了使用的后端是Qt5Agg(print(matplotlib.rcParams['backend'])),Matplotlib版本为3.5.3(因3.6.0有问题而使用)。运行上述代码后,得到的绘图窗口中图例框高度不同,请问为何会出现这种差异?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:35:25