例如,我们在此处绘制具有透明颜色的线

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

python - Matplotlib:曲线重叠时如何防止透明颜色重叠?-LMLPHP

但是我们要绘制同一条线多次,并与自身重叠,因此重叠的次数越多,其颜色就越深。
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()

python - Matplotlib:曲线重叠时如何防止透明颜色重叠?-LMLPHP

那么如何防止颜色重叠呢?

谢谢大家!

更新:为什么需要这个?

我正在做公差分析。这意味着,参数会在samll范围内自行更改,我将为每次更改绘制曲线。然后我可以找到最坏的情况。

python - Matplotlib:曲线重叠时如何防止透明颜色重叠?-LMLPHP

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

python - Matplotlib:曲线重叠时如何防止透明颜色重叠?-LMLPHP

如您所见,使用不透明的颜色,我无法观察到被其他行覆盖的节点。

更新2:

python - Matplotlib:曲线重叠时如何防止透明颜色重叠?-LMLPHP

最佳答案

一行不会覆盖自身。因此,您可以将多个图连接成一个图。

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

python - Matplotlib:曲线重叠时如何防止透明颜色重叠?-LMLPHP

这本质上是此问题How can I draw transparent lines where the color becomes stronger when they overlap?的反函数,在这里这种效果是不希望的。

07-24 09:52
查看更多