Часть 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. Вы можете сделать это следующим образом:
- Во-первых, мы увеличим нашу фигуру с помощью Matplotlib.
- Затем мы нарисуем сюжет скрипки. Однако мы установим inner=None, чтобы убрать полоски внутри скрипок.
- Далее мы построим график роя. На этот раз мы сделаем точки черными, чтобы они больше выделялись.
- Наконец, мы установим заголовок, используя 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.