pyhton实现世界疫情地图

  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     'Mongolia': '蒙古',
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")
原文地址:https://www.cnblogs.com/ZhangPengPeng/p/12800979.html