Часть 3: темы Seaborn, цветовые палитры, графики роя и графики наложения

Добро пожаловать обратно в мою серию Seaborn. В этом эпизоде ​​мы поговорим о следующем: темы Seaborn, цветовые палитры, графики роя, графики наложения. Я часто говорю об этом: возможность рассказать историю о ваших данных имеет решающее значение. Сиборн хорошо подходит для хорошего повествования. Вся информация была получена с сайта EliteDataScience. ком. Ссылку на статью вы можете найти в конце средней статьи. Кроме того, вы найдете ссылку на предыдущую статью ниже по статье. Без дальнейших церемоний, давайте погрузимся! 💦

Предыдущая статья:



Морские темы

Еще одним преимуществом использования Seaborn является то, что он поставляется с различными темами стиля прямо из коробки. Тема по умолчанию называется «darkgrid».

В примере кода мы изменим тему на «белую сетку» при создании сюжета для скрипки.

Кстати, что такое скрипичные сюжеты?

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

В примере кода мы пытаемся визуализировать распределение атаки по основному типу покемонов:

# Set theme
sns.set_style('whitegrid')

# Violin plot
sns.violinplot(x='Type 1', y='Attack', data=df)

Мы видим, что типы Жуков, как правило, имеют более высокие характеристики атаки, чем типы Феи. Однако они также имеют тенденцию к большей дисперсии.

Что-то не так с цветами. Скрипка для Травы — красная, а для Воды — нечто среднее между оранжевым и желтым. Мы можем сделать лучше!

Цветовые палитры

Вы можете создать свою собственную цветовую палитру, просто используя список.

pkmn_type_colors = [
'#78C850',  # Grass
'#F08030',  # Fire
'#6890F0',  # Water
'#A8B820',  # Bug
'#A8A878',  # Normal
'#A040A0',  # Poison
'#F8D030',  # Electric
'#E0C068',  # Ground
'#EE99AC',  # Fairy
'#C03028',  # Fighting
'#F85888',  # Psychic
'#B8A038',  # Rock
'#705898',  # Ghost
'#98D8D8',  # Ice
'#7038F8',  # Dragon
]

Мы создали цветовую палитру. Теперь давайте используем его для нашего сюжета для скрипки!

# Violin plot with Pokemon color palette
sns.violinplot(x='Type 1', y='Attack', data=df, palette=pkmn_type_colors) # Set color palette

Уже выглядит намного лучше!

Роевые участки

Скрипки отлично подходят для отображения распределений, но, поскольку в нашем наборе данных всего 151 покемон, мы хотим визуализировать каждую точку на нашем графике. Это хороший пример использования роевого сюжета. Давайте посмотрим на это.

sns.swarmplot(x='Type 1', y='Attack', data=df, palette=pkmn_type_colors)

И графики скрипки, и графики роя показывают одинаковую информацию, почему бы не объединить их?

Наложение графиков

Наложение графиков возможно и работает аналогично Matplotlib. Вы можете сделать это следующим образом:

  1. Во-первых, мы увеличим нашу фигуру с помощью Matplotlib.
  2. Затем мы нарисуем сюжет скрипки. Однако мы установим inner=None, чтобы убрать полоски внутри скрипок.
  3. Далее мы построим график роя. На этот раз мы сделаем точки черными, чтобы они больше выделялись.
  4. Наконец, мы установим заголовок, используя Matplotlib.
# Set figure size with matplotlib
plt.figure(figsize=(10,6))

# Create plot
sns.violinplot(x='Type 1',
               y='Attack',
               data=df,
               inner=None, # Remove the bars inside the violins
               palette=pkmn_type_colors)

sns.swarmplot(x='Type 1',
              y='Attack',
              data=df,
              color='k', # Make points black
              alpha=0.7) # and slightly transparent

# Set title with matplotlib
plt.title('Attack by Type')

Вот и все на сегодня! Удачного кодирования/изучения!

Спасибо за чтение этой статьи! Если вы хотите поддержать меня, вы можете сделать это следующим образом:
1. Подпишитесь на меня здесь, на Medium или в Twitter, Instagram, TikTok или YouTube.
2. Поддержите статью хлопком
3. Оставьте короткий комментарий

Я очень ценю любую поддержку! Каждое ваше взаимодействие с контентом поможет мне расти и со временем предоставлять более качественный контент. 🚀

Спасибо, VEGXCODES

Ресурсы:



Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.