您现在的位置是:热点 >>正文
图样图森破-pyecharts之地图
热点594人已围观
简介...
在之前南丁格尔玫瑰图的介绍中,我们把各个国家的疫情数据以玫瑰图的形式进行了展示,但是当涉及到的国家数量较多时,玫瑰图也并不能完美地展示出所有国家。这个时候,我们很自然地就想到了在世界地图上表示表示各个国家的,那么在pyecharts中如何实现呢?
pyecharts支持Map(地图)、Geo(地理坐标)、Map3D(三维地图)、BMap(百度地图)多种地图组件。
仍以疫情数据为例,不过这次我们选用国内各省级行政单位的数据。这是因为在pyecharts的世界地图中,是使用国家或地区的英文名称来匹配的,而我们获取到的疫情数据则都是中文名称,而中国地图上是使用中文名称来匹配各行政区域的。为免中文名称转换英文名称的麻烦,因此我们本次使用国内的数据来做示范。
数据如上所示,下面我们按部就班地开始地图的各项设置:
from pyecharts import charts, options from pyecharts.commons.utils import JsCode import pandas as pd data = pd.read_excel('国内疫情数据.xlsx') map1 = charts.Map(init_opts=options.InitOpts(width='1200px', height='800px'))
与往常一样,在初始化配置中我们设置绘图区域的宽和高。接下来是数据项和地图的配置:
map1.add('累计', data_pair=[(x[1]['地区'], x[1]['累计']) for x in data.iterrows()], maptype='图样china', is_selected=True, is_roam=True, aspect_scale=0.75, selected_mode='multiple', label_opts=options.LabelOpts(is_show=True, formatter=JsCode('''function(params){ if (params['value'])图森3;return params['name'] + ':' + params['value']} else{return ''} }''')), is_map_symbol_show=False )
首先,add接受的第一个参数仍然是数据系列名称,但与一般图表不同但是,Map中对多个数据系列不能同时显示,当你选中的多个系列在同一区域都有值的话,那么就会对其进行求和或平均值、最大值、最小值之一来进行图表展示。
(1) data_pair参数接收的参数为二元数组,第一个元素为区域名称,第二个为区域值
(3)maptype是指地图类型,世界地图为“world”,中国地图则为“china”,如果是国内各省级行政单位,则是“山东”、破-“北京”、“广东”等
(4)is_selected表示当前数据系列是否默认选中
(5)is_roam为bool值,为True时可以使用鼠标拖拽缩放和移动地图位置
(6)aspect_scale表示地图的长宽比
(7)selected_mode表示是否支持选中多个区域,取值可以是bool型(True、False)和str型(single、multiple)
(8)label_opts是标签项,是指的地图上各区域的名称及其数值等说明,其中formatter参数我们使用Js传入,是为了使地图各区域只有当被传入了数值且值不为0时才会显示标签;如上图中把西藏地区空置,其标签就不再显示
(9)is_map_symbol_show用来控制地图各区域上是否显示标记,如果为True则会在该区域有一个小红点,一般是在其省会城市的位置
map1.set_global_opts( visualmap_opts=options.VisualMapOpts( type_='color', is_show=True, pos_bottom='50%', pos_left='0%', py min_=min(data['累计']), max_=max(data['累计']), is_piecewise=True, pieces=[ {'min': min(data['累计']), 'max': 200}, {'min': 201, 'max': 300},  ec; {'min': 301, 'max': 400}, {'min': 401, 'max': 500}, {'min': 501, 'max': 600}, {'min': 601, 'max': 700}, {'min': 701, 'max': 800}, &nbhasp; {'min': 801, 'max': 900}, {'min': 901, 'max': 1000}, {'min': 1000, 'max': 10000}, {'value': 68151, 'label': '湖北', 'color': 'red'}, {'value': 10884, 'label': '香港', 'color': 'red'}&nbsrtp; ]))
对于地图,普遍地是以颜色表示数值大小。Map中在全局配置项中有一个视觉地图的配置项,指定数值最小和最大(min_和max_),即可以颜色表示此区间数值大小。其中is_piecewise表示是否分段,如果为True则像下图一样,按照pieces中设置的区间即对应颜色分段显示图例,通过点击图例即可选中对应颜色的区域并高亮显示:
如果为False,效果则如下图:图例为一条连续色卡,通过鼠标滑动,可以选择对应颜色的区域,但由于无法指定分段区间及颜色,当离差较大时,就会出现颜色单一,无法达到渐变的效果。
Map3D可以绘制三维地图,效果如下:
以每个区域上柱子的长短表示数值大小,直观且立体。现将代码附上,参数含义不再赘述:
map2 = charts.Map3D(init_opts=options.InitOpts(width='1200px', height='800px')) location = [('121.509062', '25.044332', '台湾'), ('114.502461', '38.045474', '河北'), ('112.549248', '37.857014', '山西'), ('111.670801's之, '40.818311', '内蒙古'), ('123.429096', '41.796767', '辽宁'), ('125.3245', '43.886841', '吉林'), ('126.642464', '45.756967', '黑龙江'), ('118.767413', '32.041544', '江苏'), ('120.153576', '30.287459', '浙江'), ('117.283042', '31.86119', '安徽'), ('119.306239', '26.075302', '福建'), &nbs地图p; ('115.892151', '28.676493', '江西'), ('117.000923', '36.675807', '山东'), ('113.665412', '34.757975', '河南'), ('114.298572', '30.584355', '湖北'), ('112.982279', '28.19409', '湖南'), ('113.280637', '23.125178', '广东'), ('108.320004', '22.82402', '广西'), ('110.33119', '20.031971', '海南'), 图样 ('104.065735', '30.659462', '四川'), ('106.713478', '26.578343', '贵州'), ('102.712251', '25.040609', '云南'), ('91.132212', '29.660361', '西藏'), ('108.948024', '34.263161', '陕西'), ('103.823557', '36.058039', '甘肃'), ('101.778916', '36.623178', '青海'), ('106.278179图森', '38.46637', '宁夏'), ('87.617733', '43.792818', '新疆'), ('116.405285', '39.904989', '北京'), ('117.190182', '39.125596', '天津'), ('121.472644', '31.231706', '上海'), ('106.504962', '29.533155', '重庆'), ('114.173355', '22.320048', '香港'), ('113.54909', '22.198951', '澳门')] location_dict = {x[-1]: 破-[x[0], x[1]] for x in location} map2.add_schema( itemstyle_opts=options.ItemStyleOpts( color="rgb(5,101,123)", opacity=1, border_width=0.8, border_color="rgb(62,215,213)", ), map3d_label=options.Map3DLabelOpts( is_show=False, formatter=JsCode("function(data){return data.name + " " + data.value[2];}"), ), emphasis_label_opts=options.LabelOpts( is_shopyw=False, color="#fff", font_size=10, background_color="rgba(0,23,11,0)", ), light_opts=options.Map3DLightOpts( main_color="#fff", main_intensity=1.2, main_shadow_quality="high", is_main_shadow=False, main_beta=10, ambient_intensity=0.3, ), ).add( series_name="bar3D", data_pair=[(x[1]['地区'], (location_ecdict[x[1]['地区']][0], location_dict[x[1]['地区']][1], x[1]['现有'])) for x in data.iterrows()], type_=ChartType.BAR3D, maptype='china', bar_size=1, shading="lambert", label_opts=options.LabelOpts( is_show=False, formatter=JsCode("function(data){return data.name + ' ' + data.value[2];}"), ), ).set_global_opts(title_opts=options.TitleOpts(title="Map3D-Bar3D")) page = charts.Page() page.add(map1).add(map2) page.render('map.html')
Tags:
相关文章
标签: 云知声 山海知医 医疗大模型 智慧医疗
热点云梦级12月22日云梦级消息,据云知声官方公众号透露,云知声正式推出医疗领域专家级大模型全新力作——“山海・知医大模型5.0”。这一里程碑式的发布,标志着其医疗大模型完成了从“智能工具”到“临床协作者...
【热点】
阅读更多标签: 长鑫科技 DRAM 科创板 AI算力
热点云梦级5月27日云梦级消息,5月27日,国产DRAM(动态随机存取存储器)龙头企业长鑫科技将上会接受科创板上市审核。若成功过会,这将成为科创板开板以来最具分量的芯片IPO之一。 作为中国第一大DRAM...
【热点】
阅读更多特斯拉AI官微上线首秀:人形机器人“秀”身材,加速进化中
热点9月7日,特斯拉正式在中国社交平台开设了官方微博账号—— @TeslaAI ,认证为“特斯拉官方账号”。该账号发布的首条微博便引发了广泛关注,其内容展示了特斯拉旗下的人形机器人,并配文:“我一直在努力...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.quarterjacksurgery.co.uk/?AT=3rBy&s=谷歌霸屏软件【tg:seogoogle987】,vHY
- https://www.usslexington.com/?action=QUERY&s=谷歌霸屏软件【tg:seogoogle987】,Vb4
- https://www.spoiledsweetboutique.com/search/谷歌霸屏软件【tg:seogoogle987】,tvc
- https://www.qylaws.com/search/谷歌霸屏软件【tg:seogoogle987】,W4p
- https://www.youm7.com/Home/Search?allwords=谷歌霸屏软件【tg:seogoogle987】,OXi
- https://www.lgnewsroom.com/search/谷歌霸屏软件【tg:seogoogle987】,CMY
- https://www.whiterock2008.com.tw/search?q=谷歌霸屏软件【tg:seogoogle987】,YUw
- https://www.duksung.ac.kr/search/front/Search.jsp?qt=谷歌霸屏软件【tg:seogoogle987】Hji
- https://www.kaliastyle.com/catalogsearch/result/?q=GOOGLE谷歌霸屏软件【tg:seogoogle987】,OPw
- https://www.urmc.rochester.edu/news/search?q=谷歌霸屏软件【tg:seogoogle987】,5HK
- https://www.rea.govt.nz/search?searchterm=谷歌霸屏软件【tg:seogoogle987】,gRI
- https://www.losgatoschamber.com/list/search?action=SEARCH&q=谷歌霸屏软件【tg:seogoogle987】,fr6
- https://www.seagrant.wisc.edu/?page=63&s=谷歌霸屏软件【tg:seogoogle987】,Pvf
- https://www.zutari.com/?s=谷歌霸屏软件【tg:seogoogle987】,wiV
- https://www.lyrics.com/lyrics/kkk3谷歌霸屏软件【tg:seogoogle987】,cjD
- https://www.tycoonstory.com/?s=谷歌霸屏软件【tg:seogoogle987】,0Hm
- https://www.klatreverden.no/search?q=谷歌霸屏软件【tg:seogoogle987】,BBO
- https://www.wou.edu.my/?s=谷歌霸屏软件【tg:seogoogle987】,AMG
- https://www.randjleather.co.uk/index.php?route=product/search&tag=谷歌霸屏软件【tg:seogoogle987】,B06
- https://www.universal-music.co.jp/?ID=1sIcckCTeBS8FjzCshAW9w53s8gr691o&s=谷歌霸屏软件【tg:seogoogle987】,KXo
- https://www.wikiart.org/pt/Search/谷歌霸屏软件【tg:seogoogle987】,IT6
- https://www.yli.ro/catalogsearch/result/?q=谷歌霸屏软件【tg:seogoogle987】,vHn
- https://www.mesec.cz/vyhledavani/?qs=谷歌霸屏软件【tg:seogoogle987】,5gV
- https://www.pearlstonecenter.org/search/谷歌霸屏软件【tg:seogoogle987】,xcT
- https://www.wellbees.com/catalogsearch/result/?action=CHECK&q=谷歌霸屏软件【tg:seogoogle987】,4Ac
- https://www.valuecolleges.com/?action=QUERY&s=谷歌霸屏软件【tg:seogoogle987】,wiI
- https://www.nextavenue.org/?action=QUERY&s=谷歌霸屏软件【tg:seogoogle987】,tT5
- https://www.sensorshop24.de/catalogsearch/result/index/?type=132&q=谷歌霸屏软件【tg:seogoogle987】,xun
- https://www.sportbiketracktime.com/index.php?route=product/search&tag=谷歌霸屏软件【tg:seogoogle987】,iHM
- https://www.schenckprocess.com/search?q=谷歌霸屏软件【tg:seogoogle987】,fqx
- https://www.pacific-lifestyle.co.uk/search?sort=alphabetical&term=谷歌霸屏软件【tg:seogoogle987】,B27
- https://www.tailoy.com.pe/catalogsearch/result/?q=谷歌霸屏软件【tg:seogoogle987】,3fJ
- https://www.mexperience.com/?T=1686132112324&s=谷歌霸屏软件【tg:seogoogle987】,jtg
- https://www.youtube.com/results?search_query=谷歌霸屏软件【tg:seogoogle987】,g9v
- https://www.krisinformation.se/en/search?q=谷歌霸屏软件【tg:seogoogle987】,ZPC
- https://www.ushmm.org/search/results.php?q=谷歌霸屏软件【tg:seogoogle987】,rC2
- https://yscc1986.net/search/谷歌霸屏软件【tg:seogoogle987】KRE
- https://www.sweat.com/collections/vendors?q=谷歌霸屏软件【tg:seogoogle987】,xkr
- https://www.abbreviations.com/谷歌霸屏软件【tg:seogoogle987】hLq
- https://www.teamlab.art/zh-hans/?submit=谷歌霸屏软件【tg:seogoogle987】,AjQ
- https://www.merchbar.com/search?q=谷歌霸屏软件【tg:seogoogle987】,jT3
- https://www.youtube.com/hashtag/谷歌霸屏软件【tg:seogoogle987】,nZX
- https://www.tarleton.edu/news/search/谷歌霸屏软件【tg:seogoogle987】,H91
- https://www.skicheck.at/en/?action=CHECK&s=谷歌霸屏软件【tg:seogoogle987】,tDM
- https://www.teamlab.art/pt/?submit=谷歌霸屏软件【tg:seogoogle987】,44u
- https://www.remit.co.jp/vi/?s=谷歌霸屏软件【tg:seogoogle987】,0VJ
- https://www.trockenmittel.ch/catalogsearch/result/?iC=ZM3&q=谷歌霸屏软件【tg:seogoogle987】,qMg
- https://www.u-bourgogne.fr/?cat=117&s=谷歌霸屏软件【tg:seogoogle987】,D3P
- https://www.youthforum.org/search-results?cx=4f5236218ab5e8ef9&ie=UTF-8&q=谷歌霸屏软件【tg:seogoogle987】,CN3
- https://www.reginatangoshoes.com/en/catalogsearch/result/index/?T=1686132113407&q=谷歌霸屏软件【tg:seogoogle987】,Q4f