Python Matplotlib:当曲线重叠时,如何防止透明颜色覆盖?

Python Matplotlib:当曲线重叠时,如何防止透明颜色覆盖?,python,matplotlib,plot,alpha,alpha-transparency,Python,Matplotlib,Plot,Alpha,Alpha Transparency,例如,我们在这里用透明颜色绘制一条线 import numpy as np import matplotlib.pyplot as plt a = np.array([1, 2, 3, 4, 5]) b = 2*a plt.plot(a, b, 'blue', alpha=0.3) plt.show() 但是wenn我多次绘制同一条线,它与自身重叠,因此越是与自身重叠,它就变得越暗 import numpy as np import matplotlib.pyplot as plt a

例如,我们在这里用透明颜色绘制一条线

import numpy as np
import matplotlib.pyplot as plt

a = np.array([1, 2, 3, 4, 5])
b = 2*a
plt.plot(a, b, 'blue', alpha=0.3)
plt.show()

但是wenn我多次绘制同一条线,它与自身重叠,因此越是与自身重叠,它就变得越暗

import numpy as np
import matplotlib.pyplot as plt


a = np.array([1, 2, 3, 4, 5])
b = 2*a
for i in range(3):
    plt.plot(a, b, 'blue', alpha=0.3)
plt.show()

那么如何防止颜色重叠呢

提前谢谢大家

更新:我为什么需要这个?

我正在做容忍度分析。这意味着,参数会在samll范围内改变自身,我将绘制每次变化的曲线。然后我可以找到最坏的情况

如果我选择一种纯色但较浅的颜色。它看起来像:

正如您所看到的,使用untransparent颜色,我无法观察节点,它被另一条线覆盖

更新2:


单行线不会覆盖自身。因此,可以将多个图连接到一个图中

import numpy as np
import matplotlib.pyplot as plt


a = np.array([1, 2, 3, 4, 5])
b = 2*a

A = np.tile(np.append(a,[np.nan]),3)
B = np.tile(np.append(b,[np.nan]),3)

plt.plot(A, B, 'blue', alpha=0.3)
plt.show()


这本质上是这个问题的反面,在这个问题上,这种效果是不希望的。

这正是透明线应该做的。。。如果你不喜欢,选择一种纯色但较浅的颜色。我100%同意@NilsWerner。我甚至认为他的评论是正确的答案。我的意思是,为什么有人会认为这是不可设计的?@ HeltBikes我已经更新了,为什么我需要它。@尼尔斯内尔,我已经更新了,为什么我需要它。谢谢你的回答,但是它只适用于直线。对于曲线,起点和终点将用一条直线连接。我更新了问题我更新了答案。然而,考虑到更新的问题,我在理解这个问题时遇到了问题。您似乎每行使用两行,一行宽透明,一行窄不透明。为什么不简单地把透明的放在背景中呢?非常感谢你的解决方案。宽透明线不是单行线。这是一个包含许多透明线的区域。窄的不透明线是具有理想值的曲线。透明曲线是一个有错误的参数。啊,好的,现在我明白了这个问题。在这种情况下,这里提出的答案可能是更好的选择。如果所有曲线的所有数据都具有相同的x坐标,您可以将它们连接起来,沿连接维度找到最小值和最大值,并使用
fill\u-between
绘制区域。