ZhangPengPeng
  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")

 

分类:

技术点:

相关文章: