Python 当我把两个艺术家叠加在同一个位置上时,最低的一个仍然以某种方式显示出来

Python 当我把两个艺术家叠加在同一个位置上时,最低的一个仍然以某种方式显示出来,python,matplotlib,Python,Matplotlib,下面的代码绘制 红色长方形 一个黄色的长方形,上面有一个红色的 黄色的长方形 这将产生下图 我假设第二个矩形看起来与第一个红色矩形完全相同,因为它的alpha值为1,因此基础黄色矩形不应可见 我错过什么了吗?有可能解决这个问题吗 提前感谢, 马克 使用的代码: import matplotlib.pyplot as plt from matplotlib.patches import Rectangle fig = plt.figure() axes = fig.add_subplot(

下面的代码绘制

  • 红色长方形
  • 一个黄色的长方形,上面有一个红色的
  • 黄色的长方形
这将产生下图

我假设第二个矩形看起来与第一个红色矩形完全相同,因为它的alpha值为1,因此基础黄色矩形不应可见

我错过什么了吗?有可能解决这个问题吗

提前感谢,

马克

使用的代码:

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

fig = plt.figure()
axes = fig.add_subplot(1,1,1)

rect = Rectangle((0.2, 0.2), 0.1, 0.6)
rect.set_fill(False)
rect.set_edgecolor((1, 0, 0, 1))
axes.add_artist(rect)

rect = Rectangle((0.4, 0.2), 0.1, 0.6)
rect.set_fill(False)
rect.set_edgecolor((1, 1, 0, 1))
axes.add_artist(rect)

rect = Rectangle((0.4, 0.2), 0.1, 0.6)
rect.set_fill(False)
rect.set_edgecolor((1, 0, 0, 1))
axes.add_artist(rect)

rect = Rectangle((0.6, 0.2), 0.1, 0.6)
rect.set_fill(False)
rect.set_edgecolor((1, 1, 0, 1))
axes.add_artist(rect)

plt.show()

矩形没有精确定位在结果图像的像素上,其线宽不是像素的整数倍。使图像在计算机图形学中看起来仍然像样的一种常见技术是使用抗锯齿。这将产生好的图像,但不可避免地会导致你观察到的结果

但是,您可以关闭抗锯齿功能

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

fig = plt.figure()
axes = fig.add_subplot(1,1,1)

rect = Rectangle((0.2, 0.2), 0.1, 0.6, antialiased=False)
rect.set_fill(False)
rect.set_edgecolor((1, 0, 0, 1))
axes.add_artist(rect)

rect = Rectangle((0.4, 0.2), 0.1, 0.6, antialiased=False)
rect.set_fill(False)
rect.set_edgecolor((1, 1, 0, 1))
axes.add_artist(rect)

rect = Rectangle((0.4, 0.2), 0.1, 0.6, antialiased=False)
rect.set_fill(False)
rect.set_edgecolor((1, 0, 0, 1))
axes.add_artist(rect)

rect = Rectangle((0.6, 0.2), 0.1, 0.6, antialiased=False)
rect.set_fill(False)
rect.set_edgecolor((1, 1, 0, 1))
axes.add_artist(rect)

plt.show()

谢谢!(还有一些额外的字符,在我能够表达我的感激之情之前,至少要达到15个字符:-)