當我將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