2016年奥运运动员数据,数据格式为xlsx,分3个sheet
1 分析男女运动员的身高分布,并制作图表
数据为“奥运运动员数据.xlsx,sheet → 运动员信息”
要求:
① 制作分布密度图
② 计算出男女平均身高,并绘制辅助线表示
提示:
① 可视化制图方法 → sns.distplot()
② 辅助线制图方法 → plt.axvline()
③ 分男女分别筛选数据并制作图表
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import os
os.chdir('C:\\Users\\yangy\\Desktop\\')
# 创建工作路径
df = pd.read_excel('奥运运动员数据.xlsx',sheet_name=1,header=0)
df_length = len(df)
df_columns = df.columns.tolist()
# 查看数据
# pd.read_excel → 读取excel文件,这里得到的是pandas的dataframe数据格式
data = df[['event','name','gender','height']]
data.dropna(inplace = True) # 去掉缺失值
data_male = data[data['gender'] == '男']
data_female = data[data['gender'] == '女']
# 筛选数据,按照目标字段筛选
# 提取男女数据
hmean_male = data_male['height'].mean()
hmean_female = data_female['height'].mean()
# 计算男女平均身高
sns.set_style("ticks")
# 图表风格设置
# 风格选择包括:"white", "dark", "whitegrid", "darkgrid", "ticks"
plt.figure(figsize = (8,4)) # 设置作图大小
sns.distplot(data_male['height'],hist = False,kde = True,rug = True,
rug_kws = {'color':'y','lw':2,'alpha':0.5,'height':0.1} , # 设置数据频率分布颜色
kde_kws={"color": "y", "lw": 1.5, 'linestyle':'--'}, # 设置密度曲线颜色,线宽,标注、线形
label = 'male_height')
sns.distplot(data_female['height'],h