Изменить цвет контура seaborn boxenplot

#python #seaborn

#python #seaborn

Вопрос:

Я строю график скрипки, и я хотел наложить график boxen вместо графика по умолчанию. Я смог заставить его работать следующим образом, где y это список значений, и x это такой список, который x[i] является категорией y[i] :

 violinplot(x=x, y=y, color='red', scale='width', bw=0.3, inner=None)
boxenplot(x=x, y=y, color=point_color, width=0.1)
  

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

Я очень доволен результатами, но было бы здорово, если бы я мог изменить контур графика boxen, чтобы он был того же цвета, что и контур графика скрипки, вместо белого. Однако я не могу понять, как изменить контур boxen plot, и, похоже, этого нет в документации. Помочь?

Ответ №1:

@Niema Moshiri, вы можете сделать это с помощью функции set_style с параметром ‘patch.edgecolor’: ‘red’.

Вот так

  1. sns.set_style(style="white",rc= {'patch.edgecolor': 'yellow'})

  2. sns.violinplot(data=data, color='red', scale='width', bw=0.3, inner=None)
    sns.boxenplot(data=data, color="grey",width=0.

Снимок экрана 2019-04-10 в 1 01 33 утра

Надеюсь, это поможет.

Комментарии:

1. Это здорово, спасибо! Это работает, но меня беспокоит то, что это похоже на глобальное изменение. Было бы здорово, если бы был какой-то способ просто изменить контур этого конкретного вызова на sns.boxenplot . Вы случайно не знаете, как это сделать, например, с помощью некоторого параметра boxenplot или некоторой итерации по возвращаемому значению или что-то в этом роде?

2. @Niema Moshiri Я буду больше копаться в документации, не смог найти для нее параметр. Но вы можете отключить цвет края, когда он вам больше не нужен на графиках, установив параметр rc ={patch.force_edgecolor=False } , который отключит его для следующих графиков. Не лучшее решение, но пока работает. Надеюсь, это поможет.