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

无法设置Matplotlib图像DPI:设置100却显示200?

问题原因与解决方法

你遇到的问题是Matplotlib的高DPI显示器自动缩放机制导致的:

  • Matplotlib会根据系统的显示缩放比例(比如Windows的200%显示缩放、Mac的Retina屏幕缩放)自动调整实际使用的DPI值。如果你的系统缩放比例是200%,设置100 DPI后会被自动乘以2,最终得到200。
  • 文档中提到的默认100是基础DPI值,未包含系统缩放的调整。

解决办法

方法1:强制关闭自动缩放

通过修改rcParams的缩放因子,强制Matplotlib使用你设置的原始DPI值:

import matplotlib.pyplot as plt
plt.rcParams['figure.dpi'] = 100
plt.rcParams['figure.dpi_scale_factor'] = 1  # 禁用自动缩放
fig = plt.figure(figsize=(1, 1), dpi=100)
print(fig.dpi)  # 输出100

方法2:区分显示DPI与保存DPI

如果你的需求是导出图像时使用100 DPI(而非显示时),只需单独设置保存用的DPI参数即可,无需修改显示DPI:

import matplotlib.pyplot as plt
plt.rcParams['savefig.dpi'] = 100  # 控制保存图像的DPI
fig = plt.figure(figsize=(1, 1))
fig.savefig('output.png')  # 保存的图像DPI为100

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:40:07