提高保存

时间:2015-07-26 22:25:05

标签: python matplotlib

使用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

感谢您的所有建议!

1 个答案:

答案 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交互式小部件。以下是这可行的截图:

enter image description here

每次移动滑块时,它都会使用更新后的plot值调用dpi,以便重新保存该图。如果数字特别大且生成缓慢,则可能需要使用interact_manual。为此,只需安装版本大于3.0的IPython notebook即可。