Прозрачные линейные графики 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. Если это не сработает, попробуйте получить объекты линии и напрямую установить их альфа-значения.


1
В комментарии @joe-kington говорится, что все функции matplotlib принимают альфа-параметр, требует ли ваш ответ исправления или его комментарий?
U3.1415926
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.