Прозрачные линейные графики matplotlib

131

Я рисую две похожие траектории в matplotlib, и я хотел бы построить каждую из линий с частичной прозрачностью, чтобы красный цвет (второй график) не заслонял синий.

альтернативный текст

РЕДАКТИРОВАТЬ : вот изображение с прозрачными линиями.

альтернативный текст

Гас
источник

Ответы:

254

Легко и просто:

plt.plot(x, y, 'r-', alpha=0.7)

(Я знаю, что ничего нового не добавляю, но ответ должен быть очевиден).

Давуд Тагави-Нежад
источник
Я не вижу, где задокументирован параметр alpha. Не могли бы вы обновить ответ, указав, где это задокументировано?
Alex
1
@AlexSpurling plt.plotаргументы ключевого слова take, для Line2Dкоторых параметр alpha, среди прочего, является свойством.
Thirdwater
27

После того, как я нарисовал все линии, я смог установить прозрачность всех из них следующим образом:

for l in fig_field.gca().lines:
    l.set_alpha(.7)

РЕДАКТИРОВАТЬ: см. Ответ Джо в комментариях.

Гас
источник
29
Все функции построения графиков maplotlib напрямую принимают альфа-параметр. Вы можете просто сделать plt.plot(x, y, 'r-', alpha=0.7).
Джо Кингтон
3
Я был бы рад увидеть обновленное изображение - не могли бы вы добавить его к этому ответу?
Sven Marnach 01
3
@JoeKington: кажется, что перед применением прозрачности линии складываются. Есть ли способ сделать это наоборот, чтобы прозрачные линии складывались вместе и становились темнее?
naught101
5

Это действительно зависит от того, какие функции вы используете для построения линий, но попробуйте посмотреть, принимает ли используемый вами значение альфа, и установите его примерно на 0,5. Если это не сработает, попробуйте получить объекты линии и напрямую установить их альфа-значения.

moinudin
источник
1
В комментарии @joe-kington говорится, что все функции matplotlib принимают альфа-параметр, требует ли ваш ответ исправления или его комментарий?
U3.1415926