在matplotlib中改变抗锯齿强度
有没有办法在matplotlib中增加抗锯齿效果?
我在我的数据中仍然能看到一些锯齿状的边缘,我尝试了几种不同的后端设置,但问题依旧。线条的抗锯齿选项已经开启。
这里可以看到我所说的情况:
这是从一个截图中截取的样本。可能这不是最好的例子,但我想大家可以看到线条上的阶梯状。这个截图是用wxagg后端生成的。
我使用的是Windows 7系统下的matplotlib版本1.01。
更新:我已经没有之前生成那张图片的代码了,但我仍然遇到这个问题。下面是一个简单的代码示例,展示了锯齿现象。
import numpy as np
import matplotlib
matplotlib.use('wxAgg')
import matplotlib.pyplot as pl
print 'Backend:', pl.get_backend()
x = np.linspace(0,6,100)
y = np.sin(x)
for a in range(10):
pl.plot( x, a/10.*x, linewidth=1)
pl.show()
它显示的后端是 Backend: WXAgg
,生成的图像看起来如下:

特别是下面的红色曲线,锯齿现象非常明显。
2 个回答
6
如果你把图片保存为 .svg 格式,你就可以获得无限的清晰度。然后你可以用像 InkScape 这样的工具来编辑这个 .svg 文件,调整你想要的清晰度和抗锯齿效果。
5
你在问题中添加的图片已经处理得非常好,边缘平滑得没有比这更好的了。你可以看看这张放大后的图片: