在matplotlib中将asnap hlines和vlines对齐至整像素

3 投票
1 回答
2860 浏览
提问于 2025-04-17 01:41
vlines( T(x), T(ylo), T(yhi), linewidth=Twidth(.5) )

我想在屏幕上画一些水平线和垂直线,让它们完全占据整个位像素,而不是像平常那样跨越几个像素(那样会变得模糊)。

有没有什么变换 T() 可以做到这一点?或者,有没有办法告诉某个 Mac 后台(我用的是 Qt4agg)来实现这个效果?

1 个回答

3

你是想关闭抗锯齿功能吗?

比如说:

import matplotlib.pyplot as plt

x = [1, 4, 7]
ylow = [0, 3, -2]
yhigh = [1, 4, 2]
width = [8, 15, 6]

plt.vlines(x, ylow, yhigh, linewidth=width,
           antialiased=False)
plt.axis([0, 8, -4, 5])
plt.show()

在这里输入图片描述

撰写回答