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

如何修改Pandas DataFrame绘图的DPI?代码设置后未生效求解决

解决Pandas DataFrame绘图DPI不生效的问题

我来帮你搞定这个DPI设置无效的问题!核心原因其实很简单:当你调用Pandas的plot()方法时,它会自动创建一个全新的Figure对象,直接覆盖了你之前用plt.figure(dpi=140)创建的那个,所以你的DPI设置根本没被用上。

下面给你三种可行的解决方案,按需选择:

方案一:直接在Pandas plot方法中指定DPI

最直接的方式就是把dpi参数直接传给Pandas的plot()方法,让它在创建figure时就用你想要的DPI:

my_data.sample(250).plot(kind="scatter", x="X data", y="Y", dpi=140)
plt.plot(x_data, y_hat, "r", lw=3, alpha=0.6)
plt.show()

方案二:手动创建Figure/Axes并传递给Pandas plot

这种方式更灵活,能让你完全掌控绘图的容器。先创建好指定DPI的figure和axes,然后通过ax参数告诉Pandas用这个已有的axes绘图,避免它自动新建figure:

fig, ax = plt.subplots(dpi=140)
# 让Pandas的散点图绘制在我们指定的ax上
my_data.sample(250).plot(kind="scatter", x="X data", y="Y", ax=ax)
# 后续的绘图也用同一个ax
ax.plot(x_data, y_hat, "r", lw=3, alpha=0.6)
plt.show()

方案三:全局设置Matplotlib的默认DPI

如果你希望所有绘图都默认使用这个DPI,不用每次都手动指定,可以修改Matplotlib的全局配置参数:

import matplotlib.pyplot as plt
# 全局设置默认figure的DPI
plt.rcParams['figure.dpi'] = 140

my_data.sample(250).plot(kind="scatter", x="X data", y="Y")
plt.plot(x_data, y_hat, "r", lw=3, alpha=0.6)
plt.show()

个人更推荐方案二,因为它能让你对整个绘图流程有更强的控制,后续添加其他元素(比如标题、图例、坐标轴标签)也更方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:52:36