如何修改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
相关产品推荐
相关产品推荐

