误差棒图透明度重叠问题

4
在一个errorbar matplotlib图中,当我使用alpha参数时,主线、标记和误差条的相同颜色重叠在它们的轮廓上。尽管我的目标是在两种不同颜色之间具有透明度,但不是在同一颜色内部,就像相同颜色的线条、标记和误差条只是一个对象一样。这是否可能?
import matplotlib.pyplot as plt
import numpy as np

Time = np.array([1, 2, 3])
Green = np.array([3, 5, 9])
Blue = np.array([4, 7, 13])

Green_StDev = np.array([0.6, 0.6, 0.7])
Blue_StDev = np.array([0.5, 0.5, 0.6])

plt.errorbar(Time, Green, Green_StDev, marker='o', c='green', alpha=0.5)

plt.errorbar(Time, Blue, Blue_StDev, marker='o', c='blue', alpha=0.5)

plt.show()

enter image description here

像下面的示例一样,但只在不同颜色对象之间具有透明度,与上面的示例不同。

enter image description here


我无法理解...您是否只想在重叠的标记上设置透明度? - Alessandro Peca
在其他颜色的所有对象之间,但同一颜色的对象没有透明度。 - haperes
1个回答

1
我认为你无法将它们绘制为一个单一的对象,因为它们(标记和误差棒)是分别绘制的。然而,为了使其更加“美观”,您可以重新绘制一个不透明的标记:
import matplotlib.pyplot as plt
import numpy as np

Time = np.array([1, 2, 3])
Green = np.array([3, 5, 9])
Blue = np.array([4, 7, 13])

Green_StDev = np.array([0.6, 0.6, 0.7])
Blue_StDev = np.array([0.5, 0.5, 0.6])

plt.errorbar(Time, Green, Green_StDev, marker='o', c='green', alpha=0.5)
# Add additional marker
plt.scatter(Time, Green,marker='o', c='green')

plt.errorbar(Time, Blue, Blue_StDev, marker='o', c='blue', alpha=0.5)
# Add additional marker
plt.scatter(Time, Blue, marker='o', c='blue')

plt.show()

Output


不完全是我要找的。标记会有略微不同的颜色,如果它们重叠,其中一个将覆盖另一个,因为它们是非透明的。 - haperes
使用不同的标记样式来绘制每条线(例如十字或点),这样它们就不会完全重叠在一起了,您觉得怎么样? - mrzo
是的,这是一个很好的方式来勾勒出情况。无论如何,这是开发人员需要考虑的问题。谢谢伙计。 - haperes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接