当我将matplotlib图形保存为jpeg时,刻度字体被像素化。我不确定发生了什么,或者是否有任何破解可以解决这个问题。有没有人有任何见解?当绘图保存为jpeg时的像素化字体
%matplotlib nbagg
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1.2,1.2,1000,endpoint=True)
y = np.copy(x)
x,y = np.meshgrid(x,y)
z = -x**2 + y**2 - y**3
fig = plt.figure()
ax = fig.add_subplot(111)
CS = plt.contour(x,y,z, [0,-0.1,0.1], colors=['black','blue', 'gray'])
plt.clabel(CS, fontsize=14, inline=1, fmt='%1.1f', manual=[(-0.15,0), (-0.4,0), (0.25,0.5)])
plt.savefig('plot.png', format='png')
plt.savefig('plot.jpg', format='jpg')
plt.savefig('plot.tiff', format='tiff')
这里是plot.png:
这里是plot.jpg:
这里是plot.tiff:
我相信这是与前一个问题,我有:Anti-aliased Fonts in Animations
你有没有试过不同的后端?我似乎和'nbagg'一样得到了同样的结果,但使用'Agg'我的jpg看起来好多了。使用'MacOSX'后端,jpg和tiff都有像素化字体 – tom
是的,这似乎有帮助。我摆脱了'%matplotlib nbagg'并添加了'matplotlib.use('webagg')',并且我得到了与png和tiff完全相同的jpg。这将有助于缩小问题范围。 – breeden
@tom,再次感谢。我被卡住了,无法弄清楚该怎么做。你的建议明确指出了我正确的方向。 – breeden