Изменение Альфа-линии в факторплоте seaborn


import seaborn as sns
sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.factorplot(x="time", y="pulse", hue="kind", data=exercise)

В приведенном выше коде, как я могу изменить строку rest на альфа 0,5?

1 3

1 ответ:

Найти правильные объекты осей FacetGrid с помощью метода get_children() и задать Альфа-код для линий и маркеров. Чтобы изменить свойство маркера в легенде (объект g._legend), Найдите подходящий элемент legendHandles и примените метод set_alpha():

import seaborn as sns
import matplotlib.pylab as plt

sns.set(style="ticks")
exercise = sns.load_dataset("exercise")
g = sns.factorplot(x="time", y="pulse", hue="kind", data=exercise)

# set alpha for marker (index 0) and for the rest line (indeces 3-6) 
plt.setp([g.ax.get_children()[0],g.ax.get_children()[3:7]],alpha=.5)

# modify marker in legend box
g._legend.legendHandles[0].set_alpha(.5)

plt.show()

Введите описание изображения здесь