Python绘制世界疫情地图

413 阅读2分钟

世界疫情数据下载请点击》》:gitee.com/susiewen/py… 注:此数据是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更新如下:

我选择的代码运行工具是juypter notebook

世界疫情数据下载请点击》》:疫情数据下载

要把我最上面的疫情数据下载的Excel文件下载下来。

把下载下来的这个alldfgbcountrysum.csv 放在相应的位置(设置好路径)

选择imap.render("map.html"),则要在联网的状态下显示

我上面代码的最后又补了一些注释供大家参考

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

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

如下图:

推荐更多学习课程:

java基础:    Java300集课程-Java必备优质教程_手把手图解学习Java,让学习成为一种享受_

Python基础: Python入门大全套!更适合初学者的Python从业速成计划!两个月可上岗那种!

Java管理系统项目合集: 可以写在简历上的项目合集,2022最新版Java初阶实战项目合集

java游戏项目:  【Java项目】开发王者荣耀教程和素材全套合集,不到2小时用Java做出王者荣耀

前端基础: 超干货!一周时间搭出小米商城!Web前端零基础入门HTML5+css3,学搭网站看这篇就够了!