欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

pyhton实现世界疫情地图

程序员文章站 2022-07-09 18:57:35
1 import json 2 import requests 3 import jsonpath 4 5 6 from pyecharts.charts import Map,Geo 7 from pyecharts import options as opts 8 from pyecharts. ......
  1 import json
  2 import requests
  3 import jsonpath
  4 
  5 
  6 from pyecharts.charts import map,geo
  7 from pyecharts import options as opts
  8 from pyecharts.globals import geotype,rendertype
  9 
 10 # 1.目标网址
 11 url = 'https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'
 12 # 2.模拟浏览器实现访问url
 13 resp = requests.post(url).text
 14 # print(resp)
 15 data = json.loads(resp)
 16 # print(data)
 17 # print(data)
 18 # 3.从网页源代码中提取数据
 19 name = jsonpath.jsonpath(data, "$..name")
 20 print(len(name))
 21 confirm = jsonpath.jsonpath(data, "$..confirm")
 22 print(len(confirm))
 23 # suspect = jsonpath.jsonpath(data, "$..suspect")
 24 # print(len(suspect))
 25 # dead = jsonpath.jsonpath(data, "$..dead")
 26 # print(len(dead))
 27 # heal = jsonpath.jsonpath(data, "$..heal")
 28 # print(len(heal))
 29 # print(china)
 30 # data_lists = []
 31 # for i in range(179):
 32 #     data_list = []
 33 #     data_list.append(name[i])
 34 #     data_list.append(confirm[i])
 35 #     data_lists.append(data_list)
 36 # print(data_lists)
 37 
 38 a = zip(name, confirm)
 39 
 40 
 41 namemap = {
 42     'singapore rep.': '新加坡',
 43     'dominican rep.': '多米尼加',
 44     'palestine': '巴勒斯坦',
 45     'bahamas': '巴哈马',
 46     'timor-leste': '东帝汶',
 47     'afghanistan': '阿富汗',
 48     'guinea-bissau': '几内亚比绍',
 49     "côte d'ivoire": '科特迪瓦',
 50     'siachen glacier': '锡亚琴冰川',
 51     "br. indian ocean ter.": '英属印度洋领土',
 52     'angola': '安哥拉',
 53     'albania': '阿尔巴尼亚',
 54     'united arab emirates': '阿联酋',
 55     'argentina': '阿根廷',
 56     'armenia': '亚美尼亚',
 57     'french southern and antarctic lands': '法属南半球和南极领地',
 58     'australia': '澳大利亚',
 59     'austria': '奥地利',
 60     'azerbaijan': '阿塞拜疆',
 61     'burundi': '布隆迪',
 62     'belgium': '比利时',
 63     'benin': '贝宁',
 64     'burkina faso': '布基纳法索',
 65     'bangladesh': '孟加拉国',
 66     'bulgaria': '保加利亚',
 67     'the bahamas': '巴哈马',
 68     'bosnia and herz.': '波斯尼亚和黑塞哥维那',
 69     'belarus': '白俄罗斯',
 70     'belize': '伯利兹',
 71     'bermuda': '百慕大',
 72     'bolivia': '玻利维亚',
 73     'brazil': '巴西',
 74     'brunei': '文莱',
 75     'bhutan': '不丹',
 76     'botswana': '博茨瓦纳',
 77     'central african rep.': '中非*',
 78     'canada': '加拿大',
 79     'switzerland': '瑞士',
 80     'chile': '智利',
 81     'china': '中国',
 82     'ivory coast': '象牙海岸',
 83     'cameroon': '喀麦隆',
 84     'dem. rep. congo': '刚果(金)',
 85     'congo': '刚果(布)',
 86     'colombia': '哥伦比亚',
 87     'costa rica': '哥斯达黎加',
 88     'cuba': '古巴',
 89     'n. cyprus': '北塞浦路斯',
 90     'cyprus': '塞浦路斯',
 91     'czech rep.': '捷克',
 92     'germany': '德国',
 93     'djibouti': '吉布提',
 94     'denmark': '丹麦',
 95     'algeria': '阿尔及利亚',
 96     'ecuador': '厄瓜多尔',
 97     'egypt': '埃及',
 98     'eritrea': '厄立特里亚',
 99     'spain': '西班牙',
100     'estonia': '爱沙尼亚',
101     'ethiopia': '埃塞俄比亚',
102     'finland': '芬兰',
103     'fiji': '斐',
104     'falkland islands': '福克兰群岛',
105     'france': '法国',
106     'gabon': '加蓬',
107     'united kingdom': '英国',
108     'georgia': '格鲁吉亚',
109     'ghana': '加纳',
110     'guinea': '几内亚',
111     'gambia': '冈比亚',
112     'guinea bissau': '几内亚比绍',
113     'eq. guinea': '赤道几内亚',
114     'greece': '希腊',
115     'greenland': '格陵兰',
116     'guatemala': '危地马拉',
117     'french guiana': '法属圭亚那',
118     'guyana': '圭亚那',
119     'honduras': '洪都拉斯',
120     'croatia': '克罗地亚',
121     'haiti': '海地',
122     'hungary': '匈牙利',
123     'indonesia': '印度尼西亚',
124     'india': '印度',
125     'ireland': '爱尔兰',
126     'iran': '伊朗',
127     'iraq': '伊拉克',
128     'iceland': '冰岛',
129     'israel': '以色列',
130     'italy': '意大利',
131     'jamaica': '牙买加',
132     'jordan': '约旦',
133     'japan': '日本',
134     'japan': '日本本土',
135     'kazakhstan': '哈萨克斯坦',
136     'kenya': '肯尼亚',
137     'kyrgyzstan': '吉尔吉斯斯坦',
138     'cambodia': '柬埔寨',
139     'korea': '韩国',
140     'kosovo': '科索沃',
141     'kuwait': '科威特',
142     'lao pdr': '老挝',
143     'lebanon': '黎巴嫩',
144     'liberia': '利比里亚',
145     'libya': '利比亚',
146     'sri lanka': '斯里兰卡',
147     'lesotho': '莱索托',
148     'lithuania': '立陶宛',
149     'luxembourg': '卢森堡',
150     'latvia': '拉脱维亚',
151     'morocco': '摩洛哥',
152     'moldova': '摩尔多瓦',
153     'madagascar': '马达加斯加',
154     'mexico': '墨西哥',
155     'macedonia': '马其顿',
156     'mali': '马里',
157     'myanmar': '缅甸',
158     'montenegro': '黑山',
159     '*': '蒙古',
160     'mozambique': '莫桑比克',
161     'mauritania': '毛里塔尼亚',
162     'malawi': '马拉维',
163     'malaysia': '马来西亚',
164     'namibia': '纳米比亚',
165     'new caledonia': '新喀里多尼亚',
166     'niger': '尼日尔',
167     'nigeria': '尼日利亚',
168     'nicaragua': '尼加拉瓜',
169     'netherlands': '荷兰',
170     'norway': '挪威',
171     'nepal': '尼泊尔',
172     'new zealand': '新西兰',
173     'oman': '阿曼',
174     'pakistan': '巴基斯坦',
175     'panama': '*',
176     'peru': '秘鲁',
177     'philippines': '菲律宾',
178     'papua new guinea': '巴布亚新几内亚',
179     'poland': '波兰',
180     'puerto rico': '波多黎各',
181     'dem. rep. korea': '朝鲜',
182     'portugal': '葡萄牙',
183     'paraguay': '巴拉圭',
184     'qatar': '卡塔尔',
185     'romania': '罗马尼亚',
186     'russia': '俄罗斯',
187     'rwanda': '卢旺达',
188     'w. sahara': '西撒哈拉',
189     'saudi arabia': '沙特阿拉伯',
190     'sudan': '苏丹',
191     's. sudan': '南苏丹',
192     'senegal': '塞内加尔',
193     'solomon is.': '所罗门群岛',
194     'sierra leone': '塞拉利昂',
195     'el salvador': '萨尔瓦多',
196     'somaliland': '索马里兰',
197     'somalia': '索马里',
198     'serbia': '塞尔维亚',
199     'suriname': '苏里南',
200     'slovakia': '斯洛伐克',
201     'slovenia': '斯洛文尼亚',
202     'sweden': '瑞典',
203     'swaziland': '斯威士兰',
204     'syria': '叙利亚',
205     'chad': '乍得',
206     'togo': '多哥',
207     'thailand': '泰国',
208     'tajikistan': '塔吉克斯坦',
209     'turkmenistan': '土库曼斯坦',
210     'east timor': '东帝汶',
211     'trinidad and tobago': '特里尼达和多巴哥',
212     'tunisia': '突尼斯',
213     'turkey': '土耳其',
214     'tanzania': '坦桑尼亚',
215     'uganda': '乌干达',
216     'ukraine': '乌克兰',
217     'uruguay': '乌拉圭',
218     'united states': '美国',
219     'uzbekistan': '乌兹别克斯坦',
220     'venezuela': '委内瑞拉',
221     'vietnam': '越南',
222     'vanuatu': '瓦努阿图',
223     'west bank': '西岸',
224     'yemen': '也门',
225     'south africa': '南非',
226     'zambia': '赞比亚',
227     'zimbabwe': '津巴布韦'
228 }
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 
255 #                              is_piecewise=true))  # 显示分段式图例
256 
257 
258 map_.render("国外疫情情况.html")