文章目录
- 前言
- 1. 导入模块
- 2. 数据爬取
- 3. 地图展示
-  
  - 3.1 2020东京奥运会奖牌数世界分布
- 3.2 2020东京奥运会金牌世界分布
- 3.3 2020东京奥运会金、银、铜世界分布
 
前言
2020东京奥运会已落下帷幕,中国军团共获得88枚奖牌,其中38枚金牌、32枚银牌、18枚铜牌,金牌榜和奖牌榜仅次于美国,排名第2。
本期主要利用pyecharts给大家展示奥运会金牌、银牌、铜牌以及奖牌总数的世界地图分布,希望对你有所帮助。
先看看效果:
1. 导入模块
import requests
import json
import pandas as pd
from pyecharts.charts import Map, Timeline
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ThemeType 升级 pyecharts 包:
 可视化部分需要用到 pyecharts==1.9.0,已安装其他低版本的需要升级,如果未安装过pyecharts,直接pip安装就是最新版本。
2. 数据爬取
数据来源于某视频网站接口,如下图:
爬取部分比较简单,这里不做具体分析,仅给出爬取代码:
url = 'https://app-sc.miguvideo.com/vms-livedata/olympic-medal/total-table/15/110000004609'
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
datas = r.json()['body']['allMedalData']
df = pd.DataFrame()
for data in datas:
    df = df.append([[
        data['countryName'],
        data['goldMedalNum'],
        data['silverMedalNum'],
        data['bronzeMedalNum'],
        data['totalMedalNum']]])
df.columns = ['国家', '金牌', '银牌', '铜牌', '奖牌']
结果:

3. 地图展示
3.1 2020东京奥运会奖牌数世界分布
代码:
m0 = (
    Map()
    .add("奖牌数", [list(z) for z in zip(df['国家'].values, df['奖牌'].values)], "world", is_map_symbol_show=False,
         is_roam=False, name_map=name_map)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2020东京奥运会奖牌数世界分布"),
        legend_opts=opts.LegendOpts(is_show=False),
        visualmap_opts=opts.VisualMapOpts(is_show=True, max_=120,
                                          is_piecewise=True,
                                          split_number = 8,
                                         ),
    )
)
m0.render_notebook()
效果:
3.2 2020东京奥运会金牌世界分布
代码:
m1 = (
    Map()
    .add("金牌", [list(z) for z in zip(df['国家'].values, df['金牌'].values)], "world", is_map_symbol_show=False,
         is_roam=False, name_map=name_map)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
        title_opts=opts.TitleOpts(title="2020东京奥运会金牌世界分布"),
        legend_opts=opts.LegendOpts(is_show=False),
        visualmap_opts=opts.VisualMapOpts(is_show=True, max_=40,
                                          is_piecewise=True,
                                          split_number = 8,
                                          range_color=['#FFFFE0', '#FFA07A', '#CD5C5C', '#8B0000']
                                         ),
    )
)
m1.render_notebook()
 效果:
3.3 2020东京奥运会金、银、铜世界分布
效果1:

 效果2:
以上就是本期为大家整理的全部内容了,赶快练习起来吧,原创不易,喜欢的朋友可以点赞、收藏也可以分享让更多人知道。



















