700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python之基础详解(十):用python的pyecharts模块绘制世界地图(疫情)

Python之基础详解(十):用python的pyecharts模块绘制世界地图(疫情)

时间:2023-10-10 19:25:26

相关推荐

Python之基础详解(十):用python的pyecharts模块绘制世界地图(疫情)

pyecharts可视化疫情确诊人数世界地图

首先,我们需要进行环境的配置:python版本需要3.6.x ,pyecharts版本1.x

使用pip自动安装最新版本(这里的版本是1.7.1)

记得下载配套资源!!!

pip install pyecharts

pyecharts1.x之后,pyecharts 将不再自带地图 js 文件。用户需要自行安装对应的地图文件包。

地图文件被分成了三个 Python 包,分别为:

全球国家地图: echarts-countries-pypkg

中国省级地图: echarts-china-provinces-pypkg

中国市级地图: echarts-china-cities-pypkg

可以直接用pip安装:

pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg

pyecharts里面包含很多的图表类型,类型如下:

---------Bar(柱状图/条形图)

---------Bar3D(3D 柱状图)

---------Boxplot(箱形图)

---------EffectScatter(带有涟漪特效动画的散点图)

---------Funnel(漏斗图)

---------Gauge(仪表盘)

---------Geo(地理坐标系)

---------GeoLines(地理坐标系线图)

---------Graph(关系图)

---------HeatMap(热力图)

---------Kline/Candlestick(K线图)

---------Line(折线/面积图)

---------Line3D(3D 折线图)

---------Liquid(水球图)

---------Map(地图)

---------Parallel(平行坐标系)

---------Pie(饼图)

---------Polar(极坐标系)

---------Radar(雷达图)

---------Sankey(桑基图)

---------Scatter(散点图)

---------Scatter3D(3D 散点图)

---------Surface3D(3D 曲面图)

---------ThemeRiver(主题河流图)

---------Tree(树图)

---------TreeMap(矩形树图)

---------WordCloud(词云图)

(敲黑板)接下来开始正式的环节(Map函数)

将本文章配套资源下载,里面有源代码,存储的json数据,中英文映射文件!!!!!!QAQ~

第一步:导入需要的各个模块

from pyecharts.charts import Mapfrom pyecharts import options as optsimport jsonfrom namemap import nameMap

第二部:读取数据,创建列表,将数据存储在列表里面(该json文件,配套资源里面有)

filename = 'Real-time global epidemic data_4_15.json'with open(filename) as f:#打开文件epidemic_data = json.load(f)#读取文件,以json格式存储到epidemic_data里面provinceName = []confirmedCount =[]countrys_names = []for epidemic_dict in epidemic_data:provinceName.append(epidemic_dict['provinceName'])confirmedCount.append(epidemic_dict['confirmedCount'])

第三步:进行中英文国名互换(在网上抓取的数据,国家名一般为中文,需要转化为英文,用到配套资源里面的namemap.py文件)

nameMap_new={}for key,val in nameMap.items():#将nameMap列表里面键值互换nameMap_new[val]=keyfor i in range(len(provinceName)):#遍历列表,将对应英文名存储到countrys_names列表里countrys_name = nameMap_new[provinceName[i]]countrys_names.append(countrys_name)

第四步:设置地图的基本数据(宽,高,背景颜色,页面主题,没用到的国家的背景颜色)

map = Map( init_opts=opts.InitOpts(width="1900px", height="900px", bg_color="#ADD8E6",page_title="4.15全球疫情确诊人数",theme="white"))

第五步:添加数据(设置图标“确诊人数”,导入数据对,设置每个国家的首都坐标点不可见,定义地图类型为”world“,设置国家名字不可见)

map.add("确诊人数",[list(z) for z in zip(countrys_names, confirmedCount)],is_map_symbol_show=False,maptype="world",label_opts=opts.LabelOpts(is_show=False),itemstyle_opts=opts.ItemStyleOpts(color="rgb(49,60,72)"))

第六步:进行全局设置(设置地图标题,设置图标不可见,设置视觉映射配置(其中详细参数方法在我的文章/zhu_rui/article/details/105655379)(有什么不明白的可以关注、私信我),导出为html文件(直接子啊浏览器打开))

map.set_global_opts(title_opts = opts.TitleOpts(title='4.15 全球疫情确诊人数'),legend_opts=opts.LegendOpts(is_show=False),visualmap_opts = opts.VisualMapOpts(max_=100000))map.render('world_map.html')

最后:效果图

希望对有问题的人能有点帮助,如果有什么不懂的,或者有其他功能没理解的可以关注私信我哦~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。