【发布时间】:2011-12-07 17:10:42
【问题描述】:
是否可以在 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
结果图如下所示。
尤其是下方的红色曲线显示出明显的锯齿。
【问题讨论】:
-
使用高质量算法以更高的像素尺寸和更小的比例渲染您的绘图。
-
但是交互式会话呢?
-
您指的是带有
imshow的图像图吗?如果是这样,那与抗锯齿无关,那只是imshow使用的插值算法。 (它会插入 3 波段颜色数组,而不是原始数据,这会导致很多伪影。) -
不,我指的是简单的线图。
-
啊,抱歉,我草率下结论...您使用的是什么后端?一些后端比其他后端处理得更好。基于 Agg 的后端抗锯齿效果很好。其他一些则没有。
标签: python matplotlib antialiasing