«Анализ данных Pandas» (5) — Визуализация данных

анализ данных
«Анализ данных Pandas» (5) — Визуализация данных

обзор:Изучив первую главу, мы получили базовое представление о данных Титаника, а также изучили некоторые основные статистические методы.Во второй главе мы узнали об очистке и реконструкции данных, что упрощает понимание данных. исследование Глава 2, Раздел 3:визуализация данных, в основном для ознакомления с библиотекой визуализации данных Python Matplotlib, в этой главе данные могут показаться вам очень интересными. В процессе игры визуализация данных позволяет нам лучше видеть результаты каждого ключевого шага, что можно использовать для оптимизации плана, что является очень полезным навыком.

2 Глава 2: Визуализация данных

Перед запуском импортируйте пакеты и данные numpy, pandas и matplotlib.

# 加载所需的库
# 如果出现 ModuleNotFoundError: No module named 'xxxx'
# 你只需要在终端/cmd下 pip install xxxx 即可
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#加载result.csv这个数据
df=pd.read_csv('result.csv')
df.head()

image.png

2.7 Как сделать так, чтобы люди сразу поняли ваши данные?

2.7.1 Задача 1: понять matplotlib, самостоятельно создать элемент данных и выполнить его базовую визуализацию.

Matplotlib — это библиотека для двухмерных графиков Python, которая создает цифры печатного качества в различных печатных форматах и ​​кросс-платформенной интерактивной среде. Matplotlib доступен для сценариев Python, оболочек Python и IPython (открывается в новом окне), блокнотов Jupyter (открывается в новом окне), серверов веб-приложений и четырех наборов инструментов с графическим интерфейсом.

скриншоты скриншоты скриншоты скриншоты Matplotlib пытается сделать простые вещи проще, а сложные возможными. Вы можете создавать графики, гистограммы, спектры мощности, гистограммы, графики ошибок, диаграммы рассеивания и многое другое, написав всего несколько строк кода. Дополнительные примеры см. в разделе «Основные примеры чертежей» и в галерее примеров.

Для простого построения графиков модуль pyplot предоставляет интерфейс, подобный MATLAB, особенно в сочетании с IPython. Для опытных пользователей у вас есть полный контроль над стилями линий, свойствами шрифта, свойствами осей и многим другим с помощью объектно-ориентированного интерфейса или набора функций, знакомых пользователям MATLAB.

2.7.2 Задача 2: Визуализируйте распределение числа выживших среди мужчин и женщин в наборе данных «Титаник» (попробуйте это с помощью гистограммы).

#代码编写
a=df['Survived'].groupby(df['Sex']).sum()
a.plot.bar()
plt.show()

image.png

[Мышление] Подсчитать количество смертей среди мужчин и женщин в наборе данных Титаника и визуализировать его? Как это совместить с визуальной гистограммой количества выживших мужчин и женщин? Просмотрите визуализацию своих данных и расскажите о своих первых ощущениях (например, вы сразу видите, что выживает больше мальчиков, поэтому пол может влиять на выживаемость).

#思考题回答
data=df[df["Survived"]==0]
data=data['Survived'].groupby(data['Sex'])
result=data.value_counts()
result.plot.bar()
plt.show()

image.png

2.7.3 Задача 3: Визуализируйте соотношение числа выживших и числа смертей среди мужчин и женщин в наборе данных «Титаник» (попробуйте это с помощью гистограммы).

#代码编写
# 提示:计算男女中死亡人数 1表示生存,0表示死亡

data=df.groupby(['Sex','Survived'])
data=data['Survived'].count()
data=data.unstack()
data.plot(kind='bar',stacked='True')
plt.title('survived_count')
plt.ylabel('count')
plt.show()

image.png

[Советы] Для двух осей данных мужчин и женщин количество выживших и количество смертей представлено гистограммой в пропорции

2.7.4 Задача 4: визуализировать распределение числа выживших и погибших для различных тарифов в наборе данных «Титаника». (Попробуйте это с линейной диаграммой) (горизонтальная ось - это разные тарифы, а вертикальная ось - количество выживших)

[Подсказка] Для такого рода статистических данных, представленных ломаной линией, вы можете рассмотреть возможность сортировки данных или не представлять их отдельно. Посмотрите, что вы можете найти?

# 计算不同票价中生存与死亡人数 1表示生存,0表示死亡
fare_sur = df.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False)
fare_sur

image.png

#代码编写
# 排序后绘折线图
fig = plt.figure(figsize=(20, 18))
fare_sur.plot(grid=True)
plt.legend()
plt.show()

image.png

# 排序前绘折线图
fare_sur1 = df.groupby(['Fare'])['Survived'].value_counts()
fare_sur1

image.png

fig = plt.figure(figsize=(20, 18))
fare_sur1.plot(grid=True)
plt.legend()
plt.show()

image.png

2.7.5 Задача 5: Визуально отобразить распределение выживших и погибших людей на разных позициях в наборе данных «Титаник». (попробуйте с гистограммой)

#代码编写
# 1表示生存,0表示死亡
pclass_sur = df.groupby(['Pclass'])['Survived'].value_counts()
pclass_sur

image.png

seaborn — это библиотека Python, построенная поверх matplot, которую можно использовать для создания богатой и очень привлекательной статистической графики. Библиотека Seaborn предназначена для того, чтобы сделать визуализацию основной частью изучения и понимания данных, помогая лучше изучить изучаемые наборы данных.

import seaborn as sns
sns.countplot(x="Pclass", hue="Survived", data=df)

image.png

Конкретные параметры:

sns.countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, color=None, palette=None, saturation=0.75, dodge=True, ax=None, **kwargs)

  • x: гистограмма на оси x, разделенная меткой x для количества статистических данных.
  • y: гистограмма на оси Y, разделенная меткой Y для количества статистических данных.
  • оттенок: при делении метки x или y разделите количество на метку оттенка
  • данные: DataFrame или массив или список массивов, набор данных, используемый для рисования, когда x или y отсутствует, параметр данных представляет собой набор данных, а x или y обязательны, и один из них должен присутствовать

QQ截图20210823172639.png

# 如果特征比较多可以用sns.pairplot(data)来画特征和特征之间的关系
sns.pairplot(df)
plt.show() #直方图是单变量的分析,散点图是特征之间的关系

image.png

2.7.6 Задача 6: Визуализировать распределение выживших и погибших людей разного возраста в наборе данных Титаник. (неограниченное выражение)

#代码编写
facet = sns.FacetGrid(df, hue="Survived",aspect=3)
facet.map(sns.kdeplot,'Age',shade= True)
facet.set(xlim=(0, df['Age'].max()))
facet.add_legend()

image.png

2.7.7 Задача 7: визуализировать возрастное распределение людей, занимающих разные должности в наборе данных «Титаника». (попробуйте это с линейной диаграммой)

#代码编写
df.Age[df.Pclass == 1].plot(kind='kde')
df.Age[df.Pclass == 2].plot(kind='kde')
df.Age[df.Pclass == 3].plot(kind='kde')
plt.xlabel("age")
plt.legend((1,2,3),loc="best")

image.png

【Суммировать】На этом наша визуализация подошла к концу.Если вам очень интересна визуализация данных, вы также можете узнать о других модулях визуализации, таких как: pycharts, bokeh и т. д.

Если вы используете визуализацию данных в своей работе, вы должны знать, что самая большая роль визуализации данных заключается не в крутизне, а в самом быстром и интуитивном понимании того, что данные хотят выразить.