Python绘制世界疫情地图

Python绘制世界疫情地图,第1张

世界疫情数据下载请点击》》:疫情数据下载
注:此数据是2022年3月12号的结果,其中透明的地方代表确诊人数小于10万人,白色的地方代表无该国家的数据。


最终效果:

下载需要的python包:

!pip install echarts-countries-pypkg
!pip install echarts-china-provinces-pypkg
!pip install echarts-countries-china-cities-pypkg
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
from datetime import datetime
plt.figure(figsize=(16,10))
import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.faker import Faker
from pyecharts.charts import Bar
import os
from pyecharts.options.global_options import ThemeType
alldfgbcountrysum=pd.read_csv("alldfgbcountrysum.csv",encoding='utf-8-sig')
alldfregiongbmax=alldfgbcountrysum.groupby(alldfgbcountrysum['Country_Region'])['Confirmed','Recovered','Deaths','Date'].max()
alldfregiongbmax.reset_index(inplace=True)
# 这句话的意思是把数据当中国家名US改成United States,否则地图上无法显示美国数据
alldfregiongbmax.loc[(alldfregiongbmax['Country_Region']=='US','Country_Region')]='United States'
alldfregiongbmax[alldfregiongbmax['Countey_Region']=='United States']

alldfregiongbmax的数据:

地图绘制:

# 地图绘制
from pyecharts import options as opts
from pyecharts.charts import Map 
import random
regions=alldfregiongbmax['Country_Region'].to_list()

regions2=[]
for i in range(len(regions)):
    regions2.append(regions[i])
regions2

data=[(i,alldfregiongbmax[alldfregiongbmax['Country_Region']==i]['Confirmed'].to_list()) for i in regions2]
data
imap=(
    Map(
        init_opts=opts.InitOpts(bg_color='rgba(255,250,205,0.2)',
                               width='1400px',
                                height='1000px',
                                page_title='疫情数据',
                                theme=ThemeType.ROMA
                               )
    )
    .add("确诊人数",data,"world",zoom=1)
    .set_global_opts(
        title_opts=opts.TitleOpts(title="世界疫情数据--地图绘制"),
        legend_opts=opts.LegendOpts(is_show=True),
        visualmap_opts=opts.VisualMapOpts(max_=80000000,min_=100000,is_piecewise=True,split_number=10),
    )
)
# imap.render_notebook() # 这句话的意思是在我运行的环境juypter notebook直接呈现地图,不同的软件不一样
imap.render("map.html") # 这句话的意思是在本地的文件夹下生成一个HTML文件,联网的状态下查看


于2022-03-30更新如下:

注:如果代码运行不了,可以私信我,我看看是哪里有问题。


  1. 我选择的代码运行工具是juypter notebook
  2. 世界疫情数据下载请点击》》:疫情数据下载
  3. 要把我最上面的疫情数据下载的Excel文件下载下来。


  4. 把下载下来的这个alldfgbcountrysum.csv 放在相应的位置(设置好路径)
  5. 选择imap.render("map.html"),则要在联网的状态下显示
  6. 我上面代码的最后又补了一些注释供大家参考


然后在相同的路径下新建文件:


看看自己运行后得到的alldfregiongbmax是不是下面的结果:


如下图:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/570914.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存