Перекрытие прозрачности графика ошибок - PullRequest
4 голосов
/ 07 января 2020

На графике 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

1 Ответ

1 голос
/ 08 января 2020

Я думаю, что вы не можете нарисовать их как один объект, так как они (маркер и панель ошибок) нарисованы по отдельности. Однако, чтобы сделать его более «эстетичным» c, вы можете перерисовать непрозрачный маркер:

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

...