2015-09-24 3 views
2

Использование Jupyther Ноутбуки Я часто repeadily писать следующее, чтобы изменить значение альфа участков:Как установить альфа-значение для Matplotlib участков глобально

plot(x,y1, alpha=.6) 
plot(x,y2, alpha=.6) 
... 

Я надеялся найти соответствующее значение в rcParameters, чтобы изменить опцию глобально нравится:

plt.rcParams['lines.alpha'] = 0.6 #not working 

Что такое возможно обходной путь, чтобы изменить значение альфа для всех участков?

ответ

1

Отвечая на мой собственный вопрос с помощью команды Matplotlib следующий код будет выполнять работу по changeing альфа-значение цвета линии глобально:

alpha = 0.6 
to_rgba = matplotlib.colors.ColorConverter().to_rgba 

for i, col in enumerate(plt.rcParams['axes.color_cycle']): 
    plt.rcParams['axes.color_cycle'][i] = to_rgba(col, alpha) 

Примечание: В Matplotlib 1.5 color_cycle будет устаревшим и заменен по prop_cycle

способность набор альфа-значение над rcParams также была добавлена ​​в список пожеланий для версии 2.1

+0

Они ответили быстрее, чем я полагал! –

2

К сожалению, на основе их How to записи:

Если вам нужны все элементы фигуры должны быть прозрачными, то в настоящее время не глобальные настройки альфа, но вы можете установить альфа-канал на отдельные элементы.

Таким образом, с помощью Matplotlib там в настоящее время нет способа сделать это.


Что я обычно делаю для глобальных значений, это определить внешний файл конфигурации, определить значения и импортировать их в соответствующие сценарии.

my_conf.py

# Parameters: 

# matplotlib alpha 
ALPHA = .6 

my_plots.py

import conf.py as CONF 

plot(x,y1, alpha=CONF.ALPHA) 
plot(x,y2, alpha=CONF.ALPHA) 

Это обычно помогает в сохранении конфигурации разделены и легко обновлять.

+0

я боялась так. Моя основная цель заключалась в том, чтобы держать код коротким и читаемым, поскольку он используется в ноутбуке. Поэтому ваше решение не очень помогает мне в этой ситуации, так как это также подразумевает многократное использование альфа-аргумента в команде plot – Jul3k

+0

Насколько я понимаю, я просто предложил альтернативу, чтобы сделать ответ более полным для возможных будущих скитальцев. Я не уверен, почему вы не можете установить его, но вы всегда можете [отправить его] (https://github.com/matplotlib/matplotlib/labels/wishlist) как ** желание **, если у вас есть время * * и ** терпение. –

+0

Да, спасибо за воссоздание записи HowTo. На основании этого я отправил [запрос функции] (https://github.com/matplotlib/matplotlib/issues/5132) – Jul3k

Смежные вопросы