动手学数据分析-数据可视化
全部参考 datawhale-动手学数据分析
开始前导入numpy和pandas
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
print(pd.__version__)
1.0.3
#加载result.csv这个数据
df = pd.read_csv('result.csv')
df.head()
最基本的可视化图案有哪些?分别适用于那些场景?
- 折线图: 展示数据随时间或有序类别的波动情况的趋势变化
- 柱状图: 展示多个分类的数据变化和同类别各变量之间的比较情况。
- 直方图和密度图: 用于给出值频率的离散显
示 - 散点图或点图: 用于发现各变量之间的关系。存在大量数据点,结果更精准,比如回归分析
- 可视化展示泰坦尼克号数据集中男女中生存人数分布情况(用柱状图试试)
sex = df.groupby('Sex')['Survived'].sum()
sex.plot.bar()
plt.title('survived_count')
plt.show()
sex = df.groupby('Sex')['Survived'].sum()
sex.plot.barh()
plt.title('survived_count')
plt.show()
2.计算出泰坦尼克号数据集中男女中死亡人数,并可视化展示
sex = df.groupby(['Sex','Survived'])['Survived'].count().unstack()
sex.plot.bar(stacked='True')
plt.show()
sex = df.groupby(['Sex','Survived'])['Survived'].count().unstack()
sex.plot.pie(subplots='True')
plt.show()
可以明显看出女性的存活率远大于男性,性别可能会影响存活率
3. 可视化展示泰坦尼克号数据集中男女中生存人与死亡人数的比例图
sex = df.groupby(['Sex','Survived'])['Survived'].count().unstack()
sex.plot.bar(stacked='True')
plt.title('survived_count')
plt.ylabel('count')
- 可视化展示泰坦尼克号数据集中不同票价的人生存和死亡人数分布情况。(用折线图试试)(横轴是不同票价,纵轴是存活人数)
排序:
fare_sur = df.groupby(['Fare'])['Survived'].value_counts().sort_values(ascending=False)
fare_sur.plot(grid=True)
没有排序:
fare_sur = df.groupby(['Fare'])['Survived'].value_counts()
fare_sur.plot(grid=True)
- 可视化展示泰坦尼克号数据集中不同仓位等级的人生存和死亡人员的分布情况
pclass_sur = df.groupby(['Pclass'])['Survived'].value_counts().unstack()
pclass_sur.plot.barh()
import seaborn as sns
sns.countplot(x="Pclass", hue="Survived", data=df)
- 可视化展示泰坦尼克号数据集中不同年龄的人生存与死亡人数分布情况。
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()
- 可视化展示泰坦尼克号数据集中不同仓位等级的人年龄分布情况。
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")