Matplotlib.savefig 忽略轴并在图像周围绘制黑色边框
Posted
技术标签:
【中文标题】Matplotlib.savefig 忽略轴并在图像周围绘制黑色边框【英文标题】:Matplotlib.savefig ignoring axes and plotting black border around image 【发布时间】:2019-01-26 23:08:12 【问题描述】:我有一个嵌入在 QtAggFigureCanvas (PyQt4) 中的 matplotlib 图,带有标题和轴标签(示例如下所示)。
我实现了一个按钮来将图形保存到 png 文件中。该图是通过以下方式创建的:
self.plkDpi = 100
self.plkFigure = Figure(dpi=self.plkDpi)
...
self.plkAxes = self.plkFig.add_subplot(111)
...
self.plkAxes.set_xlabel(...)
self.plkAxes.set_ylabel(...)
self.plkAxes.set_title(...)
当我点击保存按钮时,会执行以下代码:
self.plkFig.savefig('tmp.png', bbox_inches='tight', dpi=self.plkDpi)
由于某种原因,最终绘图中省略了坐标轴和绘图标题。但它们没有被裁剪 - 图形周围有一个黑框,只是空白(见下文)
无论我尝试什么,更改 figsize、dpi、边界框等。我无法使用轴标签保存图形。
【问题讨论】:
能否创建一个minimal reproducible example 以便我们重现该问题? 【参考方案1】:请看一下这个链接:Black background behind a figure's labels and ticks, only after saving figure but not in Python Interactive view (VS Code with Jupyter functionality)?。
似乎 plt.savefig() 覆盖了绘图参数。所以你必须再次定义它们。试试这个:plt.savefig('yourfilenamehere.png', facecolor='w')。这会将边框设置为白色。
最好的问候,
【讨论】:
谢谢你让我开心!以上是关于Matplotlib.savefig 忽略轴并在图像周围绘制黑色边框的主要内容,如果未能解决你的问题,请参考以下文章
matplotlib savefig() 绘图不同于 show()