如何在Python中保存1920×1080像素的绘图?调整DPI无效求助
保存1920×1080像素的Matplotlib绘图解决方案
要得到精确的1920×1080像素绘图,核心是理解Matplotlib中英寸尺寸和**DPI(每英寸像素数)**的关系:
最终像素尺寸 = 图的英寸尺寸 × DPI
你之前的问题出在figsize=(10,12)的高度设置不符合目标像素,结合DPI调整后自然无法得到1080像素的高度。下面是两种可靠的实现方法:
方法1:创建图时直接指定匹配的尺寸和DPI
选择一个DPI(比如192,是常用高DPI值),计算对应的英寸尺寸:
- 宽度:
1920 / 192 = 10英寸 - 高度:
1080 / 192 = 5.625英寸
代码示例:
import matplotlib.pyplot as plt # 创建符合尺寸的画布 fig, ax = plt.subplots(figsize=(10, 5.625), dpi=192) # 这里添加你的绘图逻辑,比如: ax.plot([1, 3, 5], [2, 4, 6]) ax.set_title("1920x1080 Plot") # 保存时使用相同DPI,避免缩放 plt.savefig("output_plot.png", dpi=192, bbox_inches='tight')
方法2:先绘图再调整尺寸保存
如果已经有绘图代码,也可以事后调整画布尺寸:
import matplotlib.pyplot as plt fig, ax = plt.subplots() # 你的绘图代码 ax.scatter([0, 1, 2], [0, 1, 4]) # 将画布尺寸转换为目标像素对应的英寸数(以DPI=192为例) fig.set_size_inches(1920/192, 1080/192) # 保存时指定DPI,tight参数防止边缘裁剪 plt.savefig("output_plot.png", dpi=192, bbox_inches='tight')
关键注意事项
- 保存时的
dpi参数必须和画布设置的DPI一致,否则会导致最终像素尺寸缩放。 bbox_inches='tight'可选,但能避免绘图内容被边缘裁剪,确保完整保存。- 也可以选择其他DPI值,比如DPI=96时,英寸尺寸为
(20, 11.25),同样能得到1920×1080像素。
内容的提问来源于stack exchange,提问作者Jessica trevor
相关产品推荐
相关产品推荐

