Часть 4. Узнайте о графиках роя

Привет, мои волшебники данных! Как дела? Не хватает визуализации данных? Что ж, давайте изменим это и попрактикуемся с Seaborn. Сегодня мы поговорим о роевых графиках. Я часто говорю об этом — как Data Scientist вы должны быть профессионалом в области визуализации данных PRO PRO PRO. Вся информация была получена из Elite Data Science. Если вы пропустили предыдущую статью, то можете найти ее здесь. Без дальнейших церемоний, давайте прямо погрузимся!

Сюжет роя

Следующий шаг в нашей серии — собрать все вместе. Конечно, вы можете сделать все визуализации для каждой статистики. Не было бы интереснее научиться помещать всю информацию в одну диаграмму? Да, было бы! Поэтому давайте сделаем это! Прежде чем мы начнем визуализацию, необходимо провести некоторую обработку данных.

Давайте сначала снова посмотрим на данные:

stats_df.head()

Как видите, каждая из атак находится в отдельной колонке. Для дальнейших визуализаций нам нужно объединить их в одну колонку. Мы можем использовать функциюmelt() Pandas.

Melt() принимает 3 аргумента: 1. Dataframe для плавления, 2. ID сохраняемых переменных, 3. имя переменной для нового столбца.

Давайте попробуем:

melted_df = pd.melt(stats_df,
                    id_vars=["Name", "Type 1", "Type 2"], # Variables to keep
                    var_name="Stat") # Name of melted variable
melted_df.head()

Да, это сработало! Теперь давайте посмотрим, чем форма Melted_df отличается от формы stats_df.

print( stats_df.shape )
print( melted_df.shape )
Out: 
(151, 9)
(906, 5)

Вы можете видеть, что у нас меньше столбцов, но больше строк. Теперь мы готовы к роевому графику. Однако на этот раз вам нужно указать x и y, чтобы разделить рои по характеристикам. Чтобы раскрасить точки по типу покемонов, мы можем установить «hue=» в «Type 1».

Посмотрим, как это будет выглядеть ⬇️

sns.swarmplot(x='Stat', y='value', data=melted_df,
              hue='Type 1')

Ладно, не выглядит законченным. Давайте сделаем еще немного кода, чтобы улучшить сюжет. Мы можем настроить размер и разделить точки по оттенку, чтобы лучше видеть закономерности. Кроме того, нам нужно использовать нашу пользовательскую цветовую палитру. На первом графике роя Вода окрашена в оранжевый цвет. Кроме того, мы можем настроить предел оси Y, так как нам не нужно, чтобы ось Y была выше 260. Мы также не хотим, чтобы легенда находилась посередине, вместо этого мы размещаем ее справа. Давай сделаем это.

# 1. Enlarge the plot
plt.figure(figsize=(15,8))

sns.swarmplot(x='Stat',
              y='value',
              data=melted_df,
              hue='Type 1',
              split=True, # 2. Separate points by hue
              palette=pkmn_type_colors) # 3. Use Pokemon palette

# 4. Adjust the y-axis
plt.ylim(0, 260)

# 5. Place legend to the right
plt.legend(bbox_to_anchor=(1, 1), loc=2)

Выглядит уже неплохо, согласны? На сегодня все, удачного изучения/кодирования!

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

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

Спасибо, VEGXCODES

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