我使用PS后端生成一个数字:
import matplotlib
matplotlib.use('ps')
from matplotlib import pyplot as plt
plt.plot((1, 2))
我想保存这个数字:
plt.savefig('test.eps', format='eps', bbox_inches='tight', pad_inches=1.0)
顺便说一下,我稍后会发布一个PNG(如果它与解决方案相关):
gs -q -dSAFER -dBATCH -dNOPAUSE -dUseTrimBox -dEPSCrop -sDEVICE=pngalpha -sOutputFile=test.png test.eps
结果是(在eog
中查看的PNG):
我想更改EPS或PNG数字的大小,但向dpi
添加savefig
kwarg不会更改输出。调用plt.gcf().set_size_inches(10, 10)
也没有任何作用。如何让我的EPS或PNG文件具有更高的分辨率?
This answer与此相关,因为它暗示为dpi
后端设置ps
可能不是最佳选择。
更新
为了澄清,我有必要使用PS后端。目前,它是唯一一个正确呈现LaTeX彩色字符串的人。 PGF可能会或可能不会做我想要的,但我没有时间深入研究它的怪癖。通过向-r...
添加gs
参数,我得到了一个hacky解决方案,但更喜欢从MatPlotLib控制所有内容。
答案 0 :(得分:1)
如果您先使用plt.figure
创建数字,则可以提供figsize
- kwarg。一个例子:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(10, 1)) # figsize in inches
fig.show() # if running in ipython
# plt.show() # if running as a script with "python script_name.py"
要使用特定的dpi进行保存,只需提及dpi
- kwarg就可以了解数字savefig
- 方法,即
fig.savefig(..., dpi=300)
请注意,如果您使用plt保存图形或绘图,它将始终与活动图形一起使用,如果碰巧打开其中几个图形,这可能不是您期望的图形。
<强>更新强>
1)
根据Mad Physicist的评论,dpi
- kwarg似乎不适用于PS后端。我不知道为什么。