Python 更改matplotlib中抗锯齿的强度

Python 更改matplotlib中抗锯齿的强度,python,matplotlib,antialiasing,Python,Matplotlib,Antialiasing,是否可以增加matplotlib中的抗锯齿? 我仍然可以在我的数据中看到一些别名,我尝试了几个后端,但它仍然存在。已设置行的抗锯齿标志 在这里你可以明白我的意思 这是一个截图样本。这可能不是最好的例子,但我想人们可以看到队列中的楼梯。它是用wxagg后端拍摄的 我正在Windows 7上使用matplotlib 1.01版 更新: 我已经没有生成上一张图片的代码了,但是我仍然有这个问题。下面是一个显示别名的简单代码示例 import numpy as np import 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()
它打印的
后端:WXAgg
结果图如下所示。


尤其是较低的红色曲线显示清晰的锯齿

您添加到问题中的图片已经完全消除了锯齿。没有比这更好的了。查看图像的缩放版本:


如果将图片另存为.svg文件,将具有无限精度。然后,您可以使用InkScape之类的工具编辑此.svg,并根据需要获得多高的精度/抗锯齿。

使用高质量算法以更高的像素维度和更小的比例渲染绘图。但是交互式会话呢?您是指使用
imshow
的图像绘图吗?如果是这样,那与抗锯齿无关,那只是
imshow
使用的插值算法。(它插值的是3波段彩色阵列,而不是原始数据,这可能会导致大量伪影。)不,我指的是简单的线图。啊,对不起,我是在下结论。。。您使用的是什么后端?有些后端比其他后端处理得更好。基于Agg的后端抗锯齿效果良好。有些人不这么认为。你是对的,这是很好的抗锯齿,但我不确定我会走到“完美”的地步。好的反别名算法有很多因素。1。它似乎没有限制的阴影数量(例如Windows字体渲染)2。没有可见的瑕疵。3.亚像素渲染不是红色事物的选项。4.每行中像素范围的宽度由线宽定义,因此算法无法更改。我真的不知道该如何改进。你看到了吗?我甚至没有提到亚像素渲染。您已经提出了一个因素,即阴影的数量,它由应用的超级采样量决定。我能想到其他的:滤光片的形状和大小,颜色空间的线性度。没错,你们说得对。没有想到伽马校正之类的事情。我刚刚尝试了几种不同的Gamma校正和其他缩放,如果不改变线宽,就无法让它看起来更好。我想知道你会改变什么。我认为在线性颜色空间中进行过滤,然后进行gamma校正或转换为sRGB输出是非常必要的。过滤器的选择将影响步骤的模糊度和可见性之间的权衡。我希望自己探索其中的一些选择,但我没有时间和动力了。是的,导出到
svg->inkscape->以5倍dpi导出到png->GIMP->[稍微模糊?->]缩放到20%->再次导出到png
。为我完全删除了相邻多边形之间的白线。