数据介绍
可视化分析
首先导入本次项目用的包和数据
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from pyecharts.charts import Bar,Pie from pyecharts import options as opts from pyecharts.globals import ThemeType import warnings warnings.filterwarnings('ignore') plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签 plt.rcParams['axes.unicode_minus']=False data = pd.read_csv('2022.csv') data.head()
# 各个国家的总奖牌数 plt.figure(figsize=(20,10)) sns.barplot(x='国家',y='总数',data=data)
# 各个国家的金牌数 plt.figure(figsize=(20,12)) sns.barplot(x='国家',y='金牌',data=data)
# 各个国家的银牌数 plt.figure(figsize=(20,12)) sns.barplot(x='国家',y='银牌',data=data)
# 给原始数据加上所属州 bei_mei = ['美国','加拿大'] ou = ['挪威','德国','瑞典','荷兰','奥地利','瑞士','ROC','法国','意大利','斯洛文尼亚','芬兰','英国','匈牙利','斯洛伐克','捷克','比利时','白俄罗斯','乌克兰','西班牙','拉脱维亚','波兰','爱沙尼亚'] ya = ['中国','日本','韩国'] da_yang = ['新西兰','澳大利亚'] zhou_list = [] for item in data['国家'].values: if item in bei_mei: zhou = '北美洲' if item in ou: zhou = '欧洲' if item in ya: zhou = '亚洲' if item in da_yang: zhou = '大洋洲' zhou_list.append(zhou) data['州'] = zhou_list data.head()
# 获奖的国家所在州的分布 a4 = Bar(init_opts=opts.InitOpts(theme = ThemeType.CHALK)) a4.add_xaxis(data['州'].value_counts().index.tolist()) a4.add_yaxis('各个州的数量',data['州'].value_counts().tolist()) a4.set_series_opts(label_opts=opts.LabelOpts(position="top")) a4.set_global_opts(title_opts=opts.TitleOpts(title="各个州的国家数")) a4.render_notebook()
# 各个州的国家数占比 a5 = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK)) a5.add(series_name='州', data_pair=[list(z) for z in zip(data['州'].value_counts().index.tolist(),data['州'].value_counts().tolist())], rosetype='radius', radius='70%', ) a5.set_global_opts(title_opts=opts.TitleOpts(title="各个州的国家数占比", pos_left='center', pos_top=30)) a5.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} <br/>{b}:{c} ({d}%)')) a5.render_notebook()
# 每个州的总奖牌数 a6 = Bar(init_opts=opts.InitOpts(theme = ThemeType.DARK)) a6.add_xaxis(data.groupby('州').agg('sum')['总数'].sort_values(ascending=False).index.tolist()) a6.add_yaxis('各个州的总奖牌数量',data.groupby('州').agg('sum')['总数'].sort_values(ascending=False).values.tolist()) a6.set_series_opts(label_opts=opts.LabelOpts(position="top")) a6.set_global_opts(title_opts=opts.TitleOpts(title="各个州的总奖牌数")) a6.render_notebook()
# 各个州的总奖牌数占比 a7 = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK)) a7.add(series_name='州', data_pair=[list(z) for z in zip(data.groupby('州').agg('sum')['总数'].sort_values(ascending=False).index.tolist(),data.groupby('州').agg('sum')['总数'].sort_values(ascending=False).values.tolist())], rosetype='radius', radius='70%', ) a7.set_global_opts(title_opts=opts.TitleOpts(title="各个州的总奖牌数占比", pos_left='center', pos_top=30)) a7.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} <br/>{b}:{c} ({d}%)')) a7.render_notebook()
# 每个州的金牌数 a8 = Bar(init_opts=opts.InitOpts(theme = ThemeType.DARK)) a8.add_xaxis(data.groupby('州').agg('sum')['金牌'].sort_values(ascending=False).index.tolist()) a8.add_yaxis('各个州的金牌数量',data.groupby('州').agg('sum')['金牌'].sort_values(ascending=False).values.tolist()) a8.set_series_opts(label_opts=opts.LabelOpts(position="top")) a8.set_series_opts(itemstyle_opts=opts.ItemStyleOpts(color='#CD7F32')) a8.set_global_opts(title_opts=opts.TitleOpts(title="各个州的金牌数")) a8.render_notebook()
# 每个州的银牌数 a10 = Bar(init_opts=opts.InitOpts(theme = ThemeType.DARK)) a10.add_xaxis(data.groupby('州').agg('sum')['银牌'].sort_values(ascending=False).index.tolist()) a10.add_yaxis('各个州的银牌数量',data.groupby('州').agg('sum')['银牌'].sort_values(ascending=False).values.tolist()) a10.set_series_opts(label_opts=opts.LabelOpts(position="top")) a10.set_series_opts(itemstyle_opts=opts.ItemStyleOpts(color='#E6E8FA')) a10.set_global_opts(title_opts=opts.TitleOpts(title="各个州的银牌数")) a10.render_notebook()
# 各个州的银牌数占比 a11 = Pie(init_opts=opts.InitOpts(theme = ThemeType.CHALK)) a11.add(series_name='州', data_pair=[list(z) for z in zip(data.groupby('州').agg('sum')['银牌'].sort_values(ascending=False).index.tolist(),data.groupby('州').agg('sum')['银牌'].sort_values(ascending=False).values.tolist())], rosetype='radius', radius='70%', ) a11.set_global_opts(title_opts=opts.TitleOpts(title="各个州的银牌数占比", pos_left='center', pos_top=30)) a11.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} <br/>{b}:{c} ({d}%)')) a11.render_notebook()
# 每个州的铜牌数 a12 = Bar(init_opts=opts.InitOpts(theme = ThemeType.DARK)) a12.add_xaxis(data.groupby('州').agg('sum')['铜牌'].sort_values(ascending=False).index.tolist()) a12.add_yaxis('各个州的铜牌数量',data.groupby('州').agg('sum')['铜牌'].sort_values(ascending=False).values.tolist()) a12.set_series_opts(itemstyle_opts=opts.ItemStyleOpts(color='#B87333')) a12.set_series_opts(label_opts=opts.LabelOpts(position="top")) a12.set_global_opts(title_opts=opts.TitleOpts(title="各个州的铜牌数")) a12.render_notebook()
# 各个州的铜牌数占比 a13 = Pie(init_opts=opts.InitOpts(theme = ThemeType.DARK)) a13.add(series_name='州', data_pair=[list(z) for z in zip(data.groupby('州').agg('sum')['铜牌'].sort_values(ascending=False).index.tolist(),data.groupby('州').agg('sum')['铜牌'].sort_values(ascending=False).values.tolist())], radius='70%', ) a13.set_global_opts(title_opts=opts.TitleOpts(title="各个州的铜牌数占比", pos_left='center', pos_top=30)) a13.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item',formatter='{a} <br/>{b}:{c} ({d}%)')) a13.render_notebook()
# 每个州的金牌占比 jin = data.groupby('州').sum()['金牌'] zong = data.groupby('州').sum()['总数'] result = round(jin/zong,2) a13 = Pie(init_opts=opts.InitOpts(theme = ThemeType.LIGHT)) a13.add(series_name='州', data_pair=[list(z) for z in zip(result.index,result.values)], rosetype='radius', radius='70%', ) a13.set_global_opts(title_opts=opts.TitleOpts(title="每个州的金牌占比", pos_left='center', pos_top=30)) a13.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item')) a13.render_notebook()
# 每个州的银牌占比 yin = data.groupby('州').sum()['银牌'] zong = data.groupby('州').sum()['总数'] result = round(yin/zong,2) a13 = Pie(init_opts=opts.InitOpts(theme = ThemeType.ESSOS)) a13.add(series_name='州', data_pair=[list(z) for z in zip(result.index,result.values)], rosetype='radius', radius='70%', ) a13.set_global_opts(title_opts=opts.TitleOpts(title="每个州的银牌占比", pos_left='center', pos_top=30)) a13.set_series_opts(tooltip_opts=opts.TooltipOpts(trigger='item')) a13.render_notebook()