到如下网址下载各个地区新冠确诊数
https://data.humdata.org/dataset/coronavirus-covid-19-cases-and-deaths
实用matplolib map绘制地图
import pandas as pd
import numpy as np
import matplotlib.ticker as ticker
from pygal_maps_world.i18n import COUNTRIES
import pygal
from pygal.style import RotateStyle # 通过 RotateStyle 可以制定地图颜色主题
from pygal.style import LightColorizedStyle # 亮色主题
import pygal_maps_world.maps
data = pd.read_csv("WHO-COVID-19-global-data.csv",encoding = 'utf-8')
pose_data = data.groupby('Country_code')['Cumulative_cases'].sum()
temp = [s.lower() for s in temp if isinstance(s,str)==True]
pose_data.index = temp
def get_country_code(country_name):
for code, name in COUNTRIES.items():
if name == country_name:
return code
return None
''' 初始化一个地图对象 '''
# wm_style = RotateStyle('#336699') # 返回一个RGB十六进制颜色对象,等会传给地图对象的style属性
# wm_style = LightColorizedStyle # 亮色主题,但是不能修改颜色,只能是pygal给你指定颜色
wm_style = RotateStyle('#336699',base_style=LightColorizedStyle) # 这样就可以用亮色主题和修改颜色了
wm = pygal_maps_world.maps.World() # 初始化一个地图对象
wm.title = 'The Confirmed COVID-19 Worldwide Data' # 设置地图的题目
wm.style = wm_style # 设置地图的风格
dict_data = {}
for i in range(len(pose_data )-1):
dict_data[pose_data.index[i+1]] = pose_data[i+1] # 将国家和人口键值对填入字典
''' add方法接受两个参数,标签加一个有着国别码的字典,也可以是只有国别码的列表 '''
wm.add('确诊数量',dict_data)
wm.render_to_file('COVID.svg') # 将图像保存为svg文件