使用matplotlib工具栏保存按钮保存时,有没有办法提高图形的分辨率?
我尝试增加dpi,但是当使用工具栏上的“保存”按钮时似乎没什么区别。
这就是我将dpi增加到用户指定的方式。
if self.txtDPI.toPlainText() == "":
DPI = 120
else:
DPI = int(self.txtDPI.toPlainText())
self.tempfig.set_dpi(DPI)
我有一个图形所在的GUI,它下面是matplotlib工具栏,因此他们可以编辑图表。当用户点击matplotlib工具栏上的“保存”按钮时,我试图用set dpi保存图形。我认为用用户输入dpi绘制图形会使它用dpi保存图形,但事实并非如此。如果用户将dpi提高到120以上,它还会使图表脱离“画布”。
编辑: 我通过以下方式让它发挥作用:
将matplotlib导入为mpl
mpl.rcParams ['savefig.dpi'] = DPI
感谢您的所有建议!
答案 0 :(得分:0)
如果您在生成数字之前设置dpi
,我会建议setting the rcParams。这可以在matplotlibrc
文件中完成,或者如果您只有一个脚本要增加dpi
,那么添加如下内容:
import matplotlib.pyplot as plt
plt.rcParams['savefig.dpi'] = 500
另一方面,如果您想在保存图形时设置dpi,则需要扩展交互式matplotlib窗口。 Here is an example如何在matplotlib中单独完成
添加交互性的简单方法是使用IPython交互式小部件。以下是这可行的截图:
每次移动滑块时,它都会使用更新后的plot
值调用dpi
,以便重新保存该图。如果数字特别大且生成缓慢,则可能需要使用interact_manual
。为此,只需安装版本大于3.0的IPython notebook即可。