前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

武汉地区,目前已经实现住院患者清零了,国内疫情已经稳定,然而中国以外新冠确诊病例达到2720458例。为了体现大国风范,今天带领大家用python实现绘制疫情地图

知识点

1. 爬虫基本流程

2. json

3. requests

4. pyecharts

开发环境

Python 3.6

Pycharm

思路

1.目标网址

2.模拟浏览器实现访问url

3.从网页源代码中提取数据

4.数据可视化

代码如下:

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import json
  5. import requests
  6. import jsonpath
  7.  
  8. from pyecharts.charts import Map,Geo
  9. from pyecharts import options as opts
  10. from pyecharts.globals import GeoType,RenderType
  11.  
  12. # 1.目标网址
  13. url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
  14. # 2.模拟浏览器实现访问url
  15. resp = requests.post(url).text
  16. # print(resp)
  17. data = json.loads(resp)
  18. # print(data)
  19. # print(data)
  20. # 3.从网页源代码中提取数据
  21. name = jsonpath.jsonpath(data, "$..name")
  22. print(len(name))
  23. confirm = jsonpath.jsonpath(data, "$..confirm")
  24. print(len(confirm))
  25. # suspect = jsonpath.jsonpath(data, "$..suspect")
  26. # print(len(suspect))
  27. # dead = jsonpath.jsonpath(data, "$..dead")
  28. # print(len(dead))
  29. # heal = jsonpath.jsonpath(data, "$..heal")
  30. # print(len(heal))
  31. # print(china)
  32. # data_lists = []
  33. # for i in range(179):
  34. # data_list = []
  35. # data_list.append(name[i])
  36. # data_list.append(confirm[i])
  37. # data_lists.append(data_list)
  38. # print(data_lists)
  39.  
  40. a = zip(name, confirm)
  41.  
  42. nameMap = {
  43. 'Singapore Rep.': '新加坡',
  44. 'Dominican Rep.': '多米尼加',
  45. 'Palestine': '巴勒斯坦',
  46. 'Bahamas': '巴哈马',
  47. 'Timor-Leste': '东帝汶',
  48. 'Afghanistan': '阿富汗',
  49. 'Guinea-Bissau': '几内亚比绍',
  50. "Côte d'Ivoire": '科特迪瓦',
  51. 'Siachen Glacier': '锡亚琴冰川',
  52. "Br. Indian Ocean Ter.": '英属印度洋领土',
  53. 'Angola': '安哥拉',
  54. 'Albania': '阿尔巴尼亚',
  55. 'United Arab Emirates': '阿联酋',
  56. 'Argentina': '阿根廷',
  57. 'Armenia': '亚美尼亚',
  58. 'French Southern and Antarctic Lands': '法属南半球和南极领地',
  59. 'Australia': '澳大利亚',
  60. 'Austria': '奥地利',
  61. 'Azerbaijan': '阿塞拜疆',
  62. 'Burundi': '布隆迪',
  63. 'Belgium': '比利时',
  64. 'Benin': '贝宁',
  65. 'Burkina Faso': '布基纳法索',
  66. 'Bangladesh': '孟加拉国',
  67. 'Bulgaria': '保加利亚',
  68. 'The Bahamas': '巴哈马',
  69. 'Bosnia and Herz.': '波斯尼亚和黑塞哥维那',
  70. 'Belarus': '白俄罗斯',
  71. 'Belize': '伯利兹',
  72. 'Bermuda': '百慕大',
  73. 'Bolivia': '玻利维亚',
  74. 'Brazil': '巴西',
  75. 'Brunei': '文莱',
  76. 'Bhutan': '不丹',
  77. 'Botswana': '博茨瓦纳',
  78. 'Central African Rep.': '中非共和国',
  79. 'Canada': '加拿大',
  80. 'Switzerland': '瑞士',
  81. 'Chile': '智利',
  82. 'China': '中国',
  83. 'Ivory Coast': '象牙海岸',
  84. 'Cameroon': '喀麦隆',
  85. 'Dem. Rep. Congo': '刚果(金)',
  86. 'Congo': '刚果(布)',
  87. 'Colombia': '哥伦比亚',
  88. 'Costa Rica': '哥斯达黎加',
  89. 'Cuba': '古巴',
  90. 'N. Cyprus': '北塞浦路斯',
  91. 'Cyprus': '塞浦路斯',
  92. 'Czech Rep.': '捷克',
  93. 'Germany': '德国',
  94. 'Djibouti': '吉布提',
  95. 'Denmark': '丹麦',
  96. 'Algeria': '阿尔及利亚',
  97. 'Ecuador': '厄瓜多尔',
  98. 'Egypt': '埃及',
  99. 'Eritrea': '厄立特里亚',
  100. 'Spain': '西班牙',
  101. 'Estonia': '爱沙尼亚',
  102. 'Ethiopia': '埃塞俄比亚',
  103. 'Finland': '芬兰',
  104. 'Fiji': '斐',
  105. 'Falkland Islands': '福克兰群岛',
  106. 'France': '法国',
  107. 'Gabon': '加蓬',
  108. 'United Kingdom': '英国',
  109. 'Georgia': '格鲁吉亚',
  110. 'Ghana': '加纳',
  111. 'Guinea': '几内亚',
  112. 'Gambia': '冈比亚',
  113. 'Guinea Bissau': '几内亚比绍',
  114. 'Eq. Guinea': '赤道几内亚',
  115. 'Greece': '希腊',
  116. 'Greenland': '格陵兰',
  117. 'Guatemala': '危地马拉',
  118. 'French Guiana': '法属圭亚那',
  119. 'Guyana': '圭亚那',
  120. 'Honduras': '洪都拉斯',
  121. 'Croatia': '克罗地亚',
  122. 'Haiti': '海地',
  123. 'Hungary': '匈牙利',
  124. 'Indonesia': '印度尼西亚',
  125. 'India': '印度',
  126. 'Ireland': '爱尔兰',
  127. 'Iran': '伊朗',
  128. 'Iraq': '伊拉克',
  129. 'Iceland': '冰岛',
  130. 'Israel': '以色列',
  131. 'Italy': '意大利',
  132. 'Jamaica': '牙买加',
  133. 'Jordan': '约旦',
  134. 'Japan': '日本',
  135. 'Japan': '日本本土',
  136. 'Kazakhstan': '哈萨克斯坦',
  137. 'Kenya': '肯尼亚',
  138. 'Kyrgyzstan': '吉尔吉斯斯坦',
  139. 'Cambodia': '柬埔寨',
  140. 'Korea': '韩国',
  141. 'Kosovo': '科索沃',
  142. 'Kuwait': '科威特',
  143. 'Lao PDR': '老挝',
  144. 'Lebanon': '黎巴嫩',
  145. 'Liberia': '利比里亚',
  146. 'Libya': '利比亚',
  147. 'Sri Lanka': '斯里兰卡',
  148. 'Lesotho': '莱索托',
  149. 'Lithuania': '立陶宛',
  150. 'Luxembourg': '卢森堡',
  151. 'Latvia': '拉脱维亚',
  152. 'Morocco': '摩洛哥',
  153. 'Moldova': '摩尔多瓦',
  154. 'Madagascar': '马达加斯加',
  155. 'Mexico': '墨西哥',
  156. 'Macedonia': '马其顿',
  157. 'Mali': '马里',
  158. 'Myanmar': '缅甸',
  159. 'Montenegro': '黑山',
  160. 'Mongolia': '蒙古',
  161. 'Mozambique': '莫桑比克',
  162. 'Mauritania': '毛里塔尼亚',
  163. 'Malawi': '马拉维',
  164. 'Malaysia': '马来西亚',
  165. 'Namibia': '纳米比亚',
  166. 'New Caledonia': '新喀里多尼亚',
  167. 'Niger': '尼日尔',
  168. 'Nigeria': '尼日利亚',
  169. 'Nicaragua': '尼加拉瓜',
  170. 'Netherlands': '荷兰',
  171. 'Norway': '挪威',
  172. 'Nepal': '尼泊尔',
  173. 'New Zealand': '新西兰',
  174. 'Oman': '阿曼',
  175. 'Pakistan': '巴基斯坦',
  176. 'Panama': '巴拿马',
  177. 'Peru': '秘鲁',
  178. 'Philippines': '菲律宾',
  179. 'Papua New Guinea': '巴布亚新几内亚',
  180. 'Poland': '波兰',
  181. 'Puerto Rico': '波多黎各',
  182. 'Dem. Rep. Korea': '朝鲜',
  183. 'Portugal': '葡萄牙',
  184. 'Paraguay': '巴拉圭',
  185. 'Qatar': '卡塔尔',
  186. 'Romania': '罗马尼亚',
  187. 'Russia': '俄罗斯',
  188. 'Rwanda': '卢旺达',
  189. 'W. Sahara': '西撒哈拉',
  190. 'Saudi Arabia': '沙特阿拉伯',
  191. 'Sudan': '苏丹',
  192. 'S. Sudan': '南苏丹',
  193. 'Senegal': '塞内加尔',
  194. 'Solomon Is.': '所罗门群岛',
  195. 'Sierra Leone': '塞拉利昂',
  196. 'El Salvador': '萨尔瓦多',
  197. 'Somaliland': '索马里兰',
  198. 'Somalia': '索马里',
  199. 'Serbia': '塞尔维亚',
  200. 'Suriname': '苏里南',
  201. 'Slovakia': '斯洛伐克',
  202. 'Slovenia': '斯洛文尼亚',
  203. 'Sweden': '瑞典',
  204. 'Swaziland': '斯威士兰',
  205. 'Syria': '叙利亚',
  206. 'Chad': '乍得',
  207. 'Togo': '多哥',
  208. 'Thailand': '泰国',
  209. 'Tajikistan': '塔吉克斯坦',
  210. 'Turkmenistan': '土库曼斯坦',
  211. 'East Timor': '东帝汶',
  212. 'Trinidad and Tobago': '特里尼达和多巴哥',
  213. 'Tunisia': '突尼斯',
  214. 'Turkey': '土耳其',
  215. 'Tanzania': '坦桑尼亚',
  216. 'Uganda': '乌干达',
  217. 'Ukraine': '乌克兰',
  218. 'Uruguay': '乌拉圭',
  219. 'United States': '美国',
  220. 'Uzbekistan': '乌兹别克斯坦',
  221. 'Venezuela': '委内瑞拉',
  222. 'Vietnam': '越南',
  223. 'Vanuatu': '瓦努阿图',
  224. 'West Bank': '西岸',
  225. 'Yemen': '也门',
  226. 'South Africa': '南非',
  227. 'Zambia': '赞比亚',
  228. 'Zimbabwe': '津巴布韦'
  229. }
  230.  
  231. map_ = Map(opts.InitOpts(width='1200px', height='600px')).add(series_name="世界各国病死率", # 设置提示框标签
  232. data_pair=a, # 输入数据
  233. maptype="world", # 设置地图类型为世界地图
  234. name_map=nameMap, # 添加映射
  235. is_map_symbol_show=False # 不显示标记点
  236. )
  237.  
  238. # 设置系列配置项
  239. map_.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 不显示国家名称
  240. # 设置全局配置项
  241. map_.set_global_opts(title_opts=opts.TitleOpts(title="国外疫情情况"), # 设置图标题
  242. visualmap_opts=opts.VisualMapOpts(max_=1000000, is_piecewise=True)) # 显示图例
  243.  
  244. # map_.set_global_opts(title_opts=opts.TitleOpts(title="国外疫情情况"), # 设置图标题
  245. # visualmap_opts=opts.VisualMapOpts(pieces=[ # 自定义分组的分店和颜色
  246. # {"min": 900000, "color": "#800000"},
  247. # {"min": 50000, "max": 500000, "lable":'0.15~0.19', "color": "#AA0000"}, # 栗色
  248. # {"min": 10000, "max": 50000, "color": "#CC0000"}, # 耐火砖
  249. # {"min": 1000, "max": 10000, "color": "#FF0000"}, # 印度红
  250. # {"min": 0, "max": 1000, "color": "#FF3333"}, # 玫瑰棕色
  251. # {"max": 0, "color": "#FFCCCC"}, # 薄雾玫瑰
  252. # ],
  253.  
  254. # is_piecewise=True)) # 显示分段式图例
  255.  
  256. map_.render("国外疫情情况.html")

最后效果图:

2020年最新Python教程:

如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?

说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的Python教程。

以上这些教程小编已经为大家打包准备好了,希望对正在学习的你有所帮助!

获取方式,私信小编 “ 资料 ”,即可免费获取哦!

Python爬取全球疫情数据,实现可视化显示地图数据(附代码)的更多相关文章

  1. python爬取《龙岭迷窟》的数据,看看质量剧情还原度到底怎么样

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:简单 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行 ...

  2. Python爬取网上车市[http://www.cheshi.com/]的数据

    #coding:utf8 #爬取网上车市[http://www.cheshi.com/]的数据 import requests, json, time, re, os, sys, time,urlli ...

  3. Python爬取股票信息,并实现可视化数据

    前言 截止2019年年底我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找, 找到之后是不是看着密密麻麻的数据是不是头都大了? 今 ...

  4. Python爬取全球是最大的电影数据库网站IMDb数据

    在使用 Python 开发爬虫的过程中,requests 和 BeautifulSoup4(别名bs4) 应用的比较广泛,requests主要用于模拟浏览器的客户端请求,以获取服务器端响应,接收到的响 ...

  5. Python 爬取 热词并进行分类数据分析-[云图制作+数据导入]

    日期:2020.01.28 博客期:136 星期二 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入](本期博客) ...

  6. 使用Python爬取、清洗并分析前程无忧的大数据职位

    爬取前程无忧的数据(大数据职位) # -*- coding: utf-8 -*- """ Created on Wed Nov 1 14:47:27 2019 @auth ...

  7. python爬取返利网中值得买中的数据

    先使用以前的方法将返利网的数据爬取下来,scrapy框架还不熟练,明日再战scrapy 查找目标数据使用的是beautifulsoup模块. 1.观察网页,寻找规律 打开值得买这块内容 1>分析 ...

  8. Python爬取COVID-19疫情监控实战

    一.项目概述 本项目基于Python.Flask.Echarts打造的一个疫情监控系统,涉及技术: Python网络爬虫 Python与Mysql数据库交互 使用Flask构建web项目 基于Echa ...

  9. 如何使用Python爬取基金数据,并可视化显示

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于Will的大食堂,作者打饭大叔 前言 美国疫情越来越严峻,大选也进入 ...

随机推荐

  1. spring5之容器始末源码赏析 (一)总览

    首先,本系列并不是以介绍spring5 的新特性为主,之所以以spring5为标题,是因为即将赏析的源码来自最新的spring版本.虽说是spring最新版本,但是容器的整个生命周期与之前版本相比,并 ...

  2. gold 波浪

  3. LLVM 编码规范 - 中文翻译

    LLVM 编码规范 导论 语言.库和标准 C++ 标准版本 C++ 标准库 Go 代码准则 机械的代码问题 代码格式化 注释 头文件 类概述 method information 注释格式化 使用Do ...

  4. 【tensorflow2.0】处理图片数据-cifar2分类

    1.准备数据 cifar2数据集为cifar10数据集的子集,只包括前两种类别airplane和automobile. 训练集有airplane和automobile图片各5000张,测试集有airp ...

  5. HashMap源码与相关面试题

    一.哈希表 哈希表是一种可以快速定位得数据结构.哈希表可以做到平均查找.插入.删除时间是O(1),当然这是指不发生Hash碰撞得情况.而哈希表最大得缺陷就是哈希值得碰撞(collision). Has ...

  6. 1004 Counting Leaves (30 分)

    A family hierarchy is usually presented by a pedigree tree. Your job is to count those family member ...

  7. php的 '1' == 1, 返回true,到底是谁变成了谁?

    此过程为字符串的 '1' 隐含的编程了数字类型1,所以是true

  8. go 基本包

    像 fmt.os 等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分(一些底层的除外)内置于 Go 本身 unsafe: 包含了一些打破 Go 语言“类型安全”的命 ...

  9. 如何将本地项目上传到gitee

    如何将本地项目上传到gitee不想废话,直入主题: 第一步:首先你得有一个gitee仓库(登录注册自己解决)友情提供: gitee官网地址. 首先:进入git额额官网(登录注册自己解决,没难度) 新建 ...

  10. 动态规划_01背包_从Dijikstra和Floyd入手,彻底理解01背包

    dp一直是短板,现在从最基础的地方开始补 给定背包总容量 M ,n个商品选择,分别有价值vi,占量wi,从中取商品放入背包,令.容量和W=Σwi不超过M,令背包中的价值和V=Σvi最大 然后取法有很多 ...