Python:使用pyecharts繪制世界疫情地圖

環(huán)境

  • Win10 64位
  • pyecharts v1.7.1
  • python 3.7.4

準(zhǔn)備工作

1 找到一個(gè)疫情數(shù)據(jù)源拣技,本文疫情數(shù)據(jù)來(lái)自騰訊疫情地圖剃氧。
2 找到請(qǐng)求源數(shù)據(jù)的地址(通過(guò)F12查找請(qǐng)求的數(shù)據(jù)地址):

F12里面找到的請(qǐng)求數(shù)據(jù)文件

獲得世界疫情數(shù)據(jù)地址:https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist
打開(kāi)后是JSON數(shù)據(jù)
世界JSON數(shù)據(jù)

編寫(xiě)代碼

第一步: 請(qǐng)求JSON地址獲取數(shù)據(jù)

  • 自定義header
  • 使用requests發(fā)送GET請(qǐng)求
# 導(dǎo)入庫(kù)
import requests
import json

# 自定義header
header = {
    'Host': 'news.qq.com/zt2020/page/feiyan.htm#/global',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3587.400',
}


# 獲取json數(shù)據(jù)
def get_data(url):
    get_data = requests.get(url, header)
    json_data = json.dumps(get_data.json()['data'])
    json_data = json.loads(json_data)
    return json_data





if __name__ == "__main__":
    # 世界疫情地圖
    QQ_data_url2 = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
    json_data2 = get_data(QQ_data_url2)

第二步:解析獲取到的JSON數(shù)據(jù)

  • 打開(kāi)JSON格式化工具
  • 打開(kāi)JSON地址復(fù)制數(shù)據(jù)到工具中


    JSON格式化工具
  • 分析得出:
    “name”:國(guó)家名稱(chēng)
    "confirm":確診數(shù)量
    “heal”:治愈數(shù)量
    “confirmAdd”:較上日數(shù)量

第三步:繪制世界疫情地圖静袖,本文使用MAP來(lái)進(jìn)行繪制


import pyecharts
from pyecharts import options as opts
from pyecharts.charts import  Map, Page
from pyecharts.globals import ChartType, _CurrentConfig
from pyecharts.commons.utils import JsCode

# 世界疫情地圖
def world_map(data):

    # 國(guó)家名
    National_data = []
    # 確診數(shù)據(jù)
    num_data = []
    # 治愈數(shù)據(jù)
    num_data_zy = []
    # 較上日
    day_data = []
    for i in range((len(data))):
        National_data.append(data[i]['name'])
        num_data.append(data[i]['confirm'])
        num_data_zy.append(data[i]['heal'])
        day_data.append(data[i]['confirmAdd'])

    nameMap = {
        'Singapore Rep.': '新加坡',
        'Dominican Rep.': '多米尼加',
        'Palestine': '巴勒斯坦',
        'Bahamas': '巴哈馬',
        'Timor-Leste': '東帝汶',
        'Afghanistan': '阿富汗',
        'Guinea-Bissau': '幾內(nèi)亞比紹',
        "C?te d'Ivoire": '科特迪瓦',
        'Siachen Glacier': '錫亞琴冰川',
        "Br. Indian Ocean Ter.": '英屬印度洋領(lǐng)土',
        'Angola': '安哥拉',
        'Albania': '阿爾巴尼亞',
        'United Arab Emirates': '阿聯(lián)酋',
        'Argentina': '阿根廷',
        'Armenia': '亞美尼亞',
        'French Southern and Antarctic Lands': '法屬南半球和南極領(lǐng)地',
        'Australia': '澳大利亞',
        'Austria': '奧地利',
        'Azerbaijan': '阿塞拜疆',
        'Burundi': '布隆迪',
        'Belgium': '比利時(shí)',
        'Benin': '貝寧',
        'Burkina Faso': '布基納法索',
        'Bangladesh': '孟加拉國(guó)',
        'Bulgaria': '保加利亞',
        'The Bahamas': '巴哈馬',
        'Bosnia and Herz.': '波斯尼亞和黑塞哥維那',
        'Belarus': '白俄羅斯',
        'Belize': '伯利茲',
        'Bermuda': '百慕大',
        'Bolivia': '玻利維亞',
        'Brazil': '巴西',
        'Brunei': '文萊',
        'Bhutan': '不丹',
        'Botswana': '博茨瓦納',
        'Central African Rep.': '中非',
        'Canada': '加拿大',
        'Switzerland': '瑞士',
        'Chile': '智利',
        'China': '中國(guó)',
        'Ivory Coast': '象牙海岸',
        'Cameroon': '喀麥隆',
        'Dem. Rep. Congo': '剛果民主共和國(guó)',
        'Congo': '剛果',
        'Colombia': '哥倫比亞',
        'Costa Rica': '哥斯達(dá)黎加',
        'Cuba': '古巴',
        'N. Cyprus': '北塞浦路斯',
        'Cyprus': '塞浦路斯',
        'Czech Rep.': '捷克',
        'Germany': '德國(guó)',
        'Djibouti': '吉布提',
        'Denmark': '丹麥',
        'Algeria': '阿爾及利亞',
        'Ecuador': '厄瓜多爾',
        'Egypt': '埃及',
        'Eritrea': '厄立特里亞',
        'Spain': '西班牙',
        'Estonia': '愛(ài)沙尼亞',
        'Ethiopia': '埃塞俄比亞',
        'Finland': '芬蘭',
        'Fiji': '斐',
        'Falkland Islands': '福克蘭群島',
        'France': '法國(guó)',
        'Gabon': '加蓬',
        'United Kingdom': '英國(guó)',
        'Georgia': '格魯吉亞',
        'Ghana': '加納',
        'Guinea': '幾內(nèi)亞',
        'Gambia': '岡比亞',
        'Guinea Bissau': '幾內(nèi)亞比紹',
        'Eq. Guinea': '赤道幾內(nèi)亞',
        'Greece': '希臘',
        'Greenland': '格陵蘭',
        'Guatemala': '危地馬拉',
        'French Guiana': '法屬圭亞那',
        'Guyana': '圭亞那',
        'Honduras': '洪都拉斯',
        'Croatia': '克羅地亞',
        'Haiti': '海地',
        'Hungary': '匈牙利',
        'Indonesia': '印度尼西亞',
        'India': '印度',
        'Ireland': '愛(ài)爾蘭',
        'Iran': '伊朗',
        'Iraq': '伊拉克',
        'Iceland': '冰島',
        'Israel': '以色列',
        'Italy': '意大利',
        'Jamaica': '牙買(mǎi)加',
        'Jordan': '約旦',
        'Japan': '日本本土',
        'Kazakhstan': '哈薩克斯坦',
        'Kenya': '肯尼亞',
        'Kyrgyzstan': '吉爾吉斯斯坦',
        'Cambodia': '柬埔寨',
        'Korea': '韓國(guó)',
        'Kosovo': '科索沃',
        'Kuwait': '科威特',
        'Lao PDR': '老撾',
        'Lebanon': '黎巴嫩',
        'Liberia': '利比里亞',
        'Libya': '利比亞',
        'Sri Lanka': '斯里蘭卡',
        'Lesotho': '萊索托',
        'Lithuania': '立陶宛',
        'Luxembourg': '盧森堡',
        'Latvia': '拉脫維亞',
        'Morocco': '摩洛哥',
        'Moldova': '摩爾多瓦',
        'Madagascar': '馬達(dá)加斯加',
        'Mexico': '墨西哥',
        'Macedonia': '馬其頓',
        'Mali': '馬里',
        'Myanmar': '緬甸',
        'Montenegro': '黑山',
        'Mongolia': '蒙古',
        'Mozambique': '莫桑比克',
        'Mauritania': '毛里塔尼亞',
        'Malawi': '馬拉維',
        'Malaysia': '馬來(lái)西亞',
        'Namibia': '納米比亞',
        'New Caledonia': '新喀里多尼亞',
        'Niger': '尼日爾',
        'Nigeria': '尼日利亞',
        'Nicaragua': '尼加拉瓜',
        'Netherlands': '荷蘭',
        'Norway': '挪威',
        'Nepal': '尼泊爾',
        'New Zealand': '新西蘭',
        'Oman': '阿曼',
        'Pakistan': '巴基斯坦',
        'Panama': '巴拿馬',
        'Peru': '秘魯',
        'Philippines': '菲律賓',
        'Papua New Guinea': '巴布亞新幾內(nèi)亞',
        'Poland': '波蘭',
        'Puerto Rico': '波多黎各',
        'Dem. Rep. Korea': '朝鮮',
        'Portugal': '葡萄牙',
        'Paraguay': '巴拉圭',
        'Qatar': '卡塔爾',
        'Romania': '羅馬尼亞',
        'Russia': '俄羅斯',
        'Rwanda': '盧旺達(dá)',
        'W. Sahara': '西撒哈拉',
        'Saudi Arabia': '沙特阿拉伯',
        'Sudan': '蘇丹',
        'S. Sudan': '南蘇丹',
        'Senegal': '塞內(nèi)加爾',
        'Solomon Is.': '所羅門(mén)群島',
        'Sierra Leone': '塞拉利昂',
        'El Salvador': '薩爾瓦多',
        'Somaliland': '索馬里蘭',
        'Somalia': '索馬里',
        'Serbia': '塞爾維亞',
        'Suriname': '蘇里南',
        'Slovakia': '斯洛伐克',
        'Slovenia': '斯洛文尼亞',
        'Sweden': '瑞典',
        'Swaziland': '斯威士蘭',
        'Syria': '敘利亞',
        'Chad': '乍得',
        'Togo': '多哥',
        'Thailand': '泰國(guó)',
        'Tajikistan': '塔吉克斯坦',
        'Turkmenistan': '土庫(kù)曼斯坦',
        'East Timor': '東帝汶',
        'Trinidad and Tobago': '特里尼達(dá)和多巴哥',
        'Tunisia': '突尼斯',
        'Turkey': '土耳其',
        'Tanzania': '坦桑尼亞',
        'Uganda': '烏干達(dá)',
        'Ukraine': '烏克蘭',
        'Uruguay': '烏拉圭',
        'United States': '美國(guó)',
        'Uzbekistan': '烏茲別克斯坦',
        'Venezuela': '委內(nèi)瑞拉',
        'Vietnam': '越南',
        'Vanuatu': '瓦努阿圖',
        'West Bank': '西岸',
        'Yemen': '也門(mén)',
        'South Africa': '南非',
        'Zambia': '贊比亞',
        'Zimbabwe': '津巴布韋',
        'Dem.Rep.Congo': '剛果(金)',
        'Congo': '剛果(布)',
        'Central African Rep.': '中非共和國(guó)',
        'Sudan': '蘇丹',
        'Greenland': '格陵蘭島',
        'Bangladesh': '孟加拉'
    }
    # 國(guó)家中文名轉(zhuǎn)為英文
    for a in range(len(National_data)):
        for b in nameMap.keys():
            if National_data[a] == nameMap[b]:
                National_data[a] = b
            else:
                continue
    # 使用zip壓縮為元組形式
    qz_data = [tuple(z) for z in zip(National_data, num_data)]
    zy_data = [tuple(z) for z in zip(National_data, num_data_zy)]
    sr_data = [tuple(z) for z in zip(National_data, day_data)]

    data_sum = 0
    data_zy = 0
    for i in range(len(num_data)):
        data_sum += num_data[i]
        data_zy += num_data_zy[i]
    # 副標(biāo)題
    subtitle = "確診數(shù)量:" + str(data_sum) + "例\n\n治愈數(shù)量:"+str(data_zy)+"例"
    world_map_data = (
        Map(
            # 設(shè)置寬度抗楔,高度
            init_opts={"width": "1280px", "height": "800px"}
        )
        .add(
            "確診數(shù)量",
            qz_data,
            maptype="world",
            is_selected=True,
            is_map_symbol_show=False
        )
        .add(
            "治愈數(shù)量",
            zy_data,
            maptype="world",
            is_selected=False,
            is_map_symbol_show=False
        )
        .add(
            "較上日數(shù)量",
            sr_data,
            maptype="world",
            is_selected=False,
            is_map_symbol_show=False
        )
        # 系列配置
        .set_series_opts(
            # 不顯示經(jīng)緯度棋凳,設(shè)置顏色,字體大小
            label_opts={'is_show': 'False',
                        'color': '#fff', 'font_size': '18', 'position': 'left'},
        )
        # 全局配置
        .set_global_opts(
            # 視覺(jué)映射配置項(xiàng)
            visualmap_opts=opts.VisualMapOpts(min_=0, max_=int(
                data_sum / 50)),
            # 設(shè)置左上角標(biāo)題和副標(biāo)題
            title_opts=opts.TitleOpts(
                title="世界疫情地圖", subtitle=subtitle, pos_left="50", pos_top="5%", title_textstyle_opts=opts.TextStyleOpts(font_size=30), subtitle_textstyle_opts=opts.TextStyleOpts(font_size=18, color='#222')
            ),
            # 圖例設(shè)置
            legend_opts=opts.LegendOpts(
                selected_mode='single', pos_top="50", pos_bottom="5%", textstyle_opts=opts.TextStyleOpts(font_size=18)),
        )
        .render("疫情地圖.html")
    )




關(guān)于‘nameMap ’這個(gè)字典:Map的國(guó)家名必須是英文名连躏,用中文名不能繪制上去剩岳。有部分國(guó)家英文名對(duì)不上沒(méi)顯示。
注:獲取的JSON數(shù)據(jù)沒(méi)有中國(guó)的數(shù)據(jù)入热,中國(guó)的數(shù)據(jù)可通過(guò)我上一篇文章獲取拍棕。

MAP設(shè)置參考pyecharts官網(wǎng)

完整代碼

# 導(dǎo)入庫(kù)
import requests
import json
import pyecharts
from pyecharts.commons.utils import JsCode
from pyecharts.globals import ChartType, _CurrentConfig
from pyecharts.charts import Map, Page
from pyecharts import options as opts


# 自定義header
header = {
    'Host': 'news.qq.com/zt2020/page/feiyan.htm#/global',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3587.400',
}


# 獲取json數(shù)據(jù)
def get_data(url):
    get_data = requests.get(url, header)
    json_data = json.dumps(get_data.json()['data'])
    json_data = json.loads(json_data)
    return json_data


# 世界疫情地圖
def world_map(data):

    # 國(guó)家名
    National_data = []
    # 確診數(shù)據(jù)
    num_data = []
    # 治愈數(shù)據(jù)
    num_data_zy = []
    # 較上日
    day_data = []
    for i in range((len(data))):
        National_data.append(data[i]['name'])
        num_data.append(data[i]['confirm'])
        num_data_zy.append(data[i]['heal'])
        day_data.append(data[i]['confirmAdd'])

    nameMap = {
        'Singapore Rep.': '新加坡',
        'Dominican Rep.': '多米尼加',
        'Palestine': '巴勒斯坦',
        'Bahamas': '巴哈馬',
        'Timor-Leste': '東帝汶',
        'Afghanistan': '阿富汗',
        'Guinea-Bissau': '幾內(nèi)亞比紹',
        "C?te d'Ivoire": '科特迪瓦',
        'Siachen Glacier': '錫亞琴冰川',
        "Br. Indian Ocean Ter.": '英屬印度洋領(lǐng)土',
        'Angola': '安哥拉',
        'Albania': '阿爾巴尼亞',
        'United Arab Emirates': '阿聯(lián)酋',
        'Argentina': '阿根廷',
        'Armenia': '亞美尼亞',
        'French Southern and Antarctic Lands': '法屬南半球和南極領(lǐng)地',
        'Australia': '澳大利亞',
        'Austria': '奧地利',
        'Azerbaijan': '阿塞拜疆',
        'Burundi': '布隆迪',
        'Belgium': '比利時(shí)',
        'Benin': '貝寧',
        'Burkina Faso': '布基納法索',
        'Bangladesh': '孟加拉國(guó)',
        'Bulgaria': '保加利亞',
        'The Bahamas': '巴哈馬',
        'Bosnia and Herz.': '波斯尼亞和黑塞哥維那',
        'Belarus': '白俄羅斯',
        'Belize': '伯利茲',
        'Bermuda': '百慕大',
        'Bolivia': '玻利維亞',
        'Brazil': '巴西',
        'Brunei': '文萊',
        'Bhutan': '不丹',
        'Botswana': '博茨瓦納',
        'Central African Rep.': '中非',
        'Canada': '加拿大',
        'Switzerland': '瑞士',
        'Chile': '智利',
        'China': '中國(guó)',
        'Ivory Coast': '象牙海岸',
        'Cameroon': '喀麥隆',
        'Dem. Rep. Congo': '剛果民主共和國(guó)',
        'Congo': '剛果',
        'Colombia': '哥倫比亞',
        'Costa Rica': '哥斯達(dá)黎加',
        'Cuba': '古巴',
        'N. Cyprus': '北塞浦路斯',
        'Cyprus': '塞浦路斯',
        'Czech Rep.': '捷克',
        'Germany': '德國(guó)',
        'Djibouti': '吉布提',
        'Denmark': '丹麥',
        'Algeria': '阿爾及利亞',
        'Ecuador': '厄瓜多爾',
        'Egypt': '埃及',
        'Eritrea': '厄立特里亞',
        'Spain': '西班牙',
        'Estonia': '愛(ài)沙尼亞',
        'Ethiopia': '埃塞俄比亞',
        'Finland': '芬蘭',
        'Fiji': '斐',
        'Falkland Islands': '赶克蘭群島',
        'France': '法國(guó)',
        'Gabon': '加蓬',
        'United Kingdom': '英國(guó)',
        'Georgia': '格魯吉亞',
        'Ghana': '加納',
        'Guinea': '幾內(nèi)亞',
        'Gambia': '岡比亞',
        'Guinea Bissau': '幾內(nèi)亞比紹',
        'Eq. Guinea': '赤道幾內(nèi)亞',
        'Greece': '希臘',
        'Greenland': '格陵蘭',
        'Guatemala': '危地馬拉',
        'French Guiana': '法屬圭亞那',
        'Guyana': '圭亞那',
        'Honduras': '洪都拉斯',
        'Croatia': '克羅地亞',
        'Haiti': '海地',
        'Hungary': '匈牙利',
        'Indonesia': '印度尼西亞',
        'India': '印度',
        'Ireland': '愛(ài)爾蘭',
        'Iran': '伊朗',
        'Iraq': '伊拉克',
        'Iceland': '冰島',
        'Israel': '以色列',
        'Italy': '意大利',
        'Jamaica': '牙買(mǎi)加',
        'Jordan': '約旦',
        'Japan': '日本本土',
        'Kazakhstan': '哈薩克斯坦',
        'Kenya': '肯尼亞',
        'Kyrgyzstan': '吉爾吉斯斯坦',
        'Cambodia': '柬埔寨',
        'Korea': '韓國(guó)',
        'Kosovo': '科索沃',
        'Kuwait': '科威特',
        'Lao PDR': '老撾',
        'Lebanon': '黎巴嫩',
        'Liberia': '利比里亞',
        'Libya': '利比亞',
        'Sri Lanka': '斯里蘭卡',
        'Lesotho': '萊索托',
        'Lithuania': '立陶宛',
        'Luxembourg': '盧森堡',
        'Latvia': '拉脫維亞',
        'Morocco': '摩洛哥',
        'Moldova': '摩爾多瓦',
        'Madagascar': '馬達(dá)加斯加',
        'Mexico': '墨西哥',
        'Macedonia': '馬其頓',
        'Mali': '馬里',
        'Myanmar': '緬甸',
        'Montenegro': '黑山',
        'Mongolia': '蒙古',
        'Mozambique': '莫桑比克',
        'Mauritania': '毛里塔尼亞',
        'Malawi': '馬拉維',
        'Malaysia': '馬來(lái)西亞',
        'Namibia': '納米比亞',
        'New Caledonia': '新喀里多尼亞',
        'Niger': '尼日爾',
        'Nigeria': '尼日利亞',
        'Nicaragua': '尼加拉瓜',
        'Netherlands': '荷蘭',
        'Norway': '挪威',
        'Nepal': '尼泊爾',
        'New Zealand': '新西蘭',
        'Oman': '阿曼',
        'Pakistan': '巴基斯坦',
        'Panama': '巴拿馬',
        'Peru': '秘魯',
        'Philippines': '菲律賓',
        'Papua New Guinea': '巴布亞新幾內(nèi)亞',
        'Poland': '波蘭',
        'Puerto Rico': '波多黎各',
        'Dem. Rep. Korea': '朝鮮',
        'Portugal': '葡萄牙',
        'Paraguay': '巴拉圭',
        'Qatar': '卡塔爾',
        'Romania': '羅馬尼亞',
        'Russia': '俄羅斯',
        'Rwanda': '盧旺達(dá)',
        'W. Sahara': '西撒哈拉',
        'Saudi Arabia': '沙特阿拉伯',
        'Sudan': '蘇丹',
        'S. Sudan': '南蘇丹',
        'Senegal': '塞內(nèi)加爾',
        'Solomon Is.': '所羅門(mén)群島',
        'Sierra Leone': '塞拉利昂',
        'El Salvador': '薩爾瓦多',
        'Somaliland': '索馬里蘭',
        'Somalia': '索馬里',
        'Serbia': '塞爾維亞',
        'Suriname': '蘇里南',
        'Slovakia': '斯洛伐克',
        'Slovenia': '斯洛文尼亞',
        'Sweden': '瑞典',
        'Swaziland': '斯威士蘭',
        'Syria': '敘利亞',
        'Chad': '乍得',
        'Togo': '多哥',
        'Thailand': '泰國(guó)',
        'Tajikistan': '塔吉克斯坦',
        'Turkmenistan': '土庫(kù)曼斯坦',
        'East Timor': '東帝汶',
        'Trinidad and Tobago': '特里尼達(dá)和多巴哥',
        'Tunisia': '突尼斯',
        'Turkey': '土耳其',
        'Tanzania': '坦桑尼亞',
        'Uganda': '烏干達(dá)',
        'Ukraine': '烏克蘭',
        'Uruguay': '烏拉圭',
        'United States': '美國(guó)',
        'Uzbekistan': '烏茲別克斯坦',
        'Venezuela': '委內(nèi)瑞拉',
        'Vietnam': '越南',
        'Vanuatu': '瓦努阿圖',
        'West Bank': '西岸',
        'Yemen': '也門(mén)',
        'South Africa': '南非',
        'Zambia': '贊比亞',
        'Zimbabwe': '津巴布韋',
        'Dem.Rep.Congo': '剛果(金)',
        'Congo': '剛果(布)',
        'Central African Rep.': '中非共和國(guó)',
        'Sudan': '蘇丹',
        'Greenland': '格陵蘭島',
        'Bangladesh': '孟加拉'
    }
    # 國(guó)家中文名轉(zhuǎn)為英文
    for a in range(len(National_data)):
        for b in nameMap.keys():
            if National_data[a] == nameMap[b]:
                National_data[a] = b
            else:
                continue
    # 使用zip壓縮為元組形式
    qz_data = [tuple(z) for z in zip(National_data, num_data)]
    zy_data = [tuple(z) for z in zip(National_data, num_data_zy)]
    sr_data = [tuple(z) for z in zip(National_data, day_data)]

    data_sum = 0
    data_zy = 0
    for i in range(len(num_data)):
        data_sum += num_data[i]
        data_zy += num_data_zy[i]
    # 副標(biāo)題
    subtitle = "確診數(shù)量:" + str(data_sum) + "例\n\n治愈數(shù)量:"+str(data_zy)+"例"
    world_map_data = (
        Map(
            # 設(shè)置寬度,高度
            init_opts={"width": "1280px", "height": "800px"}
        )
        .add(
            "確診數(shù)量",
            qz_data,
            maptype="world",
            is_selected=True,
            is_map_symbol_show=False
        )
        .add(
            "治愈數(shù)量",
            zy_data,
            maptype="world",
            is_selected=False,
            is_map_symbol_show=False
        )
        .add(
            "較上日數(shù)量",
            sr_data,
            maptype="world",
            is_selected=False,
            is_map_symbol_show=False
        )
        # 系列配置
        .set_series_opts(
            # 不顯示經(jīng)緯度绰播,設(shè)置顏色骄噪,字體大小
            label_opts={'is_show': 'False',
                        'color': '#fff', 'font_size': '18', 'position': 'left'},
        )
        # 全局配置
        .set_global_opts(
            # 視覺(jué)映射配置項(xiàng)
            visualmap_opts=opts.VisualMapOpts(min_=0, max_=int(
                data_sum / 50)),
            # 設(shè)置左上角標(biāo)題和副標(biāo)題
            title_opts=opts.TitleOpts(
                title="世界疫情地圖", subtitle=subtitle, pos_left="50", pos_top="5%", title_textstyle_opts=opts.TextStyleOpts(font_size=30), subtitle_textstyle_opts=opts.TextStyleOpts(font_size=18, color='#222')
            ),
            # 圖例設(shè)置
            legend_opts=opts.LegendOpts(
                selected_mode='single', pos_top="50", pos_bottom="5%", textstyle_opts=opts.TextStyleOpts(font_size=18)),
        )
        .render("疫情地圖.html")
    )



if __name__ == "__main__":
    # 世界疫情地圖
    QQ_data_url2 = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
    json_data2 = get_data(QQ_data_url2)
    world_map(json_data2)

效果圖
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蠢箩,隨后出現(xiàn)的幾起案子链蕊,更是在濱河造成了極大的恐慌,老刑警劉巖谬泌,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滔韵,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡掌实,警方通過(guò)查閱死者的電腦和手機(jī)陪蜻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)贱鼻,“玉大人囱皿,你說(shuō)我怎么就攤上這事〕类冢” “怎么了嘱腥?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拘悦。 經(jīng)常有香客問(wèn)我齿兔,道長(zhǎng),這世上最難降的妖魔是什么础米? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任分苇,我火速辦了婚禮,結(jié)果婚禮上屁桑,老公的妹妹穿的比我還像新娘医寿。我一直安慰自己,他們只是感情好蘑斧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布靖秩。 她就那樣靜靜地躺著,像睡著了一般竖瘾。 火紅的嫁衣襯著肌膚如雪沟突。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天捕传,我揣著相機(jī)與錄音惠拭,去河邊找鬼。 笑死庸论,一個(gè)胖子當(dāng)著我的面吹牛职辅,可吹牛的內(nèi)容都是我干的棒呛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼域携,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼簇秒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起涵亏,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宰睡,失蹤者是張志新(化名)和其女友劉穎蒲凶,沒(méi)想到半個(gè)月后气筋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡旋圆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年宠默,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灵巧。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡搀矫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刻肄,到底是詐尸還是另有隱情瓤球,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布敏弃,位于F島的核電站卦羡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏麦到。R本人自食惡果不足惜绿饵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望瓶颠。 院中可真熱鬧拟赊,春花似錦、人聲如沸粹淋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桃移。三九已至欢搜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谴轮,已是汗流浹背炒瘟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留第步,地道東北人疮装。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓缘琅,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親廓推。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刷袍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355