将 hlines 和 vlines 捕捉到 matplotlib 中的整个像素

发布于 2024-12-03 18:56:09 字数 216 浏览 3 评论 0原文

我想绘制一些 hlines 和 vlines 捕捉以占据屏幕上的整个像素, 没有像往常一样分布在几个像素上(渲染、抗锯齿)。 是否有一个变换 T() 可以

vlines( T(x), T(ylo), T(yhi), linewidth=Twidth(.5) )

绘制整个像素?或者,有没有办法告诉某些 Mac 后端(我使用 Qt4agg)执行此操作?

I want to draw some hlines and vlines snapped to occupy whole pixels on the screen,
not spread across several pixels (rendered, antialiased) as usual.
Is there a transform T() so that

vlines( T(x), T(ylo), T(yhi), linewidth=Twidth(.5) )

draws whole pixels ? Or, is there a way of telling some Mac backend (I use Qt4agg) to do this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无妨# 2024-12-10 18:56:09

您只想关闭抗锯齿功能吗?

例如:

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()

在此处输入图像描述

Do you just want to turn antialiasing off?

For example:

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()

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文