【特别声明:转载知乎某大牛,仅作略微修改,若侵犯权益请联系删除】

疫情的每日数据变化牵动着千万人的心,我多么希望早晨一醒来就传来疫情被战胜的喜讯。我每天早晨醒来的第一件事情,就是看看确诊人数的变化,相信很多小伙伴也和我一样。我是一名程序员,在家就制作了这样一个小程序,通过Python实时生成数据分布图,可以是全国也可以是每个省份。技术分享,我们一起战胜疫情。

(数据取自网站不一定十分精准,主要是技术分享,还望谅解)

全国数据图

湖北省

下面和大家一起来看看代码吧!

这里借助了pyecharts

1、先来将需要的模块导入进来


```python
#如果没有这些模块记得先导入
import requests
import json
import re
from pyecharts.charts import Map
from pyecharts import options

在命令行导入这些模块

导入模块

pip install requests

pip install json

pip install re

pip install pyecharts

除了上面的模块需要导入外还需要导入地图

依次是全球地图、中国省级地图、中国市级地图、中国区县级地图、中国区域地图

根据需要地图导入

pip install echarts-countries-pypkg

pip install echarts-china-provinces-pypkg

pip install echarts-china-cities-pypkg

pip install echarts-china-counties-pypkg

pip install echarts-china-misc-pypkg

特别说明:若下载超时请用国内镜像下载,速度很快

2.获取数据-处理数据;

#发起网络请求,获取数据
result = requests.get('https://interface.sina.cn/news/wap/fymap2020_data.d.json?1580097300739&&callback=sinajp_1580097300873005379567841634181')
#使用正则表达式处理数据
json_str = re.search("\(+([^)]*)\)+", result.text).group(1)
html = f"{json_str}"
table = json.loads(f"{html}")

3.进行地图的生成,详解在后面;

province_data = []#循环获取省份名称和对应的确诊数据
for province in table['data']['list']:#将省份数据添加到列表中去province_data.append((province['name'], province['value']))city_data = []#循环获取城市名称和对应的确诊数据for city in province['city']:#这里要注意对应上地图的名字需要使用mapName这个字段city_data.append((city['mapName'], city['conNum']))#使用Map,创建省份地图    map_province = Map()#设置地图上的标题和数据标记,添加省份和确诊人数map_province.set_global_opts(title_opts=options.TitleOpts(title=province['name'] + "实时疫情图-确诊人数:" + province['value']),visualmap_opts=options.VisualMapOpts(is_piecewise=True,#设置是否为分段显示#自定义数据范围和对应的颜色pieces=[{"min": 1000, "label": '>1000人', "color": "#6F171F"}, {"min": 500, "max": 1000, "label": '500-1000人', "color": "#C92C34"},{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))#将数据添加进去,生成省份地图,所以maptype要对应省份。map_province.add("确诊", city_data, maptype = province['name'])#一切完成,那么生成一个省份的html网页文件,取上对应省份的名字。map_province.render(province['name'] + "疫情地图.html")  #创建国家地图
map_country = Map()
#设置地图上的标题和数据标记,添加确诊人数
map_country.set_global_opts(title_opts=options.TitleOpts(title="中国实时疫情图-确诊人数:" + table['data']["gntotal"]), visualmap_opts=options.VisualMapOpts(is_piecewise=True,#设置是否为分段显示#自定义数据范围和对应的颜色pieces=[{"min": 1000, "label": '>1000人', "color": "#6F171F"}, # 不指定 max,表示 max 为无限大(Infinity)。{"min": 500, "max": 1000, "label": '500-1000人', "color": "#C92C34"},{"min": 100, "max": 499, "label": '100-499人', "color": "#E35B52"},{"min": 10, "max": 99, "label": '10-99人', "color": "#F39E86"},{"min": 1, "max": 9, "label": '1-9人', "color": "#FDEBD0"}]))
#将数据添加进去,生成中国地图,所以maptype要对应china。
map_country.add("确诊", province_data, maptype="china")
#一切完成,那么生成一个html网页文件。
map_country.render("中国疫情地图.html")
"""
#world地图,没有详细去完善了,有兴趣的可以试试。data=[]for country in table['data']['worldlist']:data.append((country['name'], country['value']))
print(data)map_country =  Map()
map_country.set_global_opts(title_opts=options.TitleOpts(title="世界实时疫情图"), visualmap_opts=options.VisualMapOpts(max_=1000))
map_country.add("确诊", data, maptype="world")
map_country.render("world.html")  # 生成html文件"""
print("生成完成!!!")

部分代码解释

(1)

#将省份数据添加到列表中去

province_data.append((province[‘name’], province[‘value’]))

将数据中对应的值取出来添加到province_data中。

(2)

title_opts=options.TitleOpts(title=“A”)

A是生成地图中的红色框框部分。

(3)

visualmap_opts=options.VisualMapOpts(is_piecewise=True,#设置是否为分段显示

#自定义数据范围和对应的颜色,这里我是取色工具获取的颜色值,不容易呀。

pieces=[

{“min”: 1000, “label”: ‘>1000人’, “color”: “#6F171F”},

{“min”: 500, “max”: 1000, “label”: ‘500-1000人’, “color”: “#C92C34”},

{“min”: 100, “max”: 499, “label”: ‘100-499人’, “color”: “#E35B52”},

{“min”: 10, “max”: 99, “label”: ‘10-99人’, “color”: “#F39E86”},

{“min”: 1, “max”: 9, “label”: ‘1-9人’, “color”: “#FDEBD0”}]))

is_piecewise=True,#设置是否为分段显示

然后通过 pieces来设置。

(4)

#将数据添加进去,生成中国地图,所以maptype要对应china。

map_country.add(“确诊”, province_data, maptype=“china”)

将描述信息和对应数据添加到地图中去,同时设置地图type。

(5)

#一切完成,那么生成一个html网页文件。

map_country.render(“country.html”)

(6) 就这样生成了世界、全国、省份的实时地图网页。

(源代码)用Python制作疫情的实时数据地图(PS:全国以及每个省)相关推荐

  1. python做地图导航_(源代码)用Python制作疫情的实时数据地图(PS:全国以及每个省)...

    Welcome to巧乐希 Jion us!学习Python! 小溪流 终将汇成大海 作者:小溪流(爱好科技教育的工程师.) 像孩子一样学习Python. 疫情的每日数据变化牵动着千万人的心,我多么希 ...

  2. dev里timeedit控件如何赋值_如何制作高逼格的数据地图(二)

    上一期介绍的是如何通过Power Map制作数据地图.但如果Excel在没有安装该组件,应该怎么办?如果希望实现更加个性化的设置,又有什么方法? 那么,通过VBA代码也可以实现数据地图的制作. 相比之 ...

  3. 【源代码】Python制作的赛车小游戏,逆行飙车

    python制作的赛车小游戏,逆行飙车,通过键盘方向键控制 程序运行截图 源代码 import pygame, sys, time, random# pygame 初始化 pygame.init() ...

  4. 可视化 | Python制作最炫3D可视化地图

    文章目录 1. 环境安装 1.1 安装 pyecharts 1.2 安装地图扩展包 2. 广东省3D地图 3. 北京市3D地图 4. 中国3D地图-行政区 5. 中国3D地图-数据可视化 大家好,我是 ...

  5. 思迈特软件Smartbi:10分钟教会你制作高难度的数据地图!

    在数据可视化中,地图可视化是高频应用的一种.我们在一些新闻报道和商业杂志上,会经常看到运用地图来分析展示商业现象,这样的利用地图来反映和分析数据的形式叫数据地图. 数据地图可以最直观的表达出数据之间的 ...

  6. 三步制作一张业务数据地图

    在<可视化图表入门教程>这篇文章中,我们学会了基础可视化图表的使用,以及在<可视化图表进阶教程:业务数据地图的绘制>这篇文章中,我们掌握了可视化图表类型的业务应用.本篇文章将带 ...

  7. Python制作吃鸡各数据资料查询助手,带你做理论王者~

    前言 大家早好.午好.晚好吖 ❤ ~ 吃鸡想必大家都玩过了 今天来教大家制作一个资料查询助手 1.我们是不是要去获取这些数据 武器配件 首先:对于 武器一个详情页url地址发送请求, 获取 每个武器的 ...

  8. python爬取网页实时数据_使用 Python 爬取网页数据

    1. 使用 urllib.request 获取网页 urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 ...

  9. python制作图表(爬取数据之后分析最后制成图表)

    0x01数据收集 这里使用python爬取招聘信息存到数据库.这个脚本只负责收集,收集之后保存到数据库 为了加快爬取速度这里采用多进程方式. 脚本详情参考https://blog.csdn.net/q ...

  10. 用 Python 爬取股票实时数据

    今天我们一起来学习一个 Python 爬虫实战案例,我们的目标网站就是东方财富网,废话不多说,开搞 网站分析 东方财富网地址如下 http://quote.eastmoney.com/center/g ...

最新文章

  1. 让我们来谈谈对Linux的认识,值得每一位运维人员深读
  2. 2019考研调剂信息 计算机专业,2019考研分数线还未公布,已公布的调剂信息是真的吗?...
  3. 【图像】插值方法原理(最近邻,双线性,双三,兰索斯)
  4. 《Python 数据分析》笔记——pandas
  5. sql每个月每个人的花销占比_星座月运(2020年12月),每个人开支花费大,得精打细算...
  6. datanucleus_DataNucleus 3.0与Hibernate 3.5
  7. 如何解释营销能力与技术能力是正交的
  8. Egg Node.js 从小工坊走向企业级开发 #20
  9. maven创建java项目_使用maven命令行创建java项目
  10. linux的定时任务有多耗资源,linux定时任务的一些相关操作汇总
  11. Shader 优化相关资料整理
  12. 借助nginx实现反向代理,并通过SSL证书实现https访问以及http调整https访问。
  13. 什么是幂等,什么情况下需要幂等,如何实现幂等
  14. LED技术50年秘史回顾:从指示灯到街灯
  15. kubesphere安装Maven+JDK17 流水线打包
  16. 分区数据丢失怎么恢复?恢复磁盘分区数据的方法
  17. 小白终是踏上了这条不归路----小文的mysql学习笔记(6)----连接查询-----等值连接、非等值连接、自链接、外连接、交叉连接
  18. 百度手机输入法for android16,百度输入法下载
  19. 京东凡客模式遭质疑 电子商务或回归本质
  20. 识别计算机硬件实训,计算机硬件及组装实训报告工作报告_1

热门文章

  1. Gstreamer学习笔记(5):GStreamer Pad and Capabilities Negotiation
  2. 基于Labview的空气质量监测系统设计_STM32F103C8T6(程序+原理图+PCB)
  3. linux脚本对登录密码加密,shell 脚本明文密码加密小工具
  4. java-工具-开源
  5. 开启线下2.0广告新趋势 详解LED透明屏
  6. 08CMS之数据库字段在表单中的展现
  7. 08cms php5.4,08CMS - 内容管理CMS - PHP开源项目 - 开源吧
  8. 标准正态分布怎么算_标准正态分布密度函数计算公式怎么算、
  9. 湘潭大学计算机网络安全学院,省委网信办与湘潭大学共建网络空间安全学院签约暨揭牌仪式举行...
  10. 计算机上的24点游戏怎么玩,掌握基本规律,轻松玩转24点游戏