图样图森破-pyecharts之地图
在之前南丁格尔玫瑰图的介绍中,我们把各个国家的疫情数据以玫瑰图的形式进行了展示,但是当涉及到的国家数量较多时,玫瑰图也并不能完美地展示出所有国家。这个时候,我们很自然地就想到了在世界地图上表示表示各个国家的,那么在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']){ret图森urn 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%',  yp; min_=min(data['累计']), max_=max(data['累计']), is_piecewise=True, pieces=[ {'min': min(data['累计']), 'max': 200}, {'min': 201, 'max': 300}, &nbsecp; {'min': 301, 'max': 400}, {'min': 401, 'max': 500}, {'min': 501, 'max': 600}, {'min': 601, 'max': 700}, {'min': 701, 'max': 800}, &nhabsp; {'min': 801, 'max': 900}, {'min': 901, 'max': 1000}, {'min': 1000, 'max': 10000}, {'value': 68151, 'label': '湖北', 'color': 'red'}, {'value': 10884, 'label': '香港', 'color': 'red'} &rtnbsp; ]))
对于地图,普遍地是以颜色表示数值大小。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', '福建'), &nb地图sp; ('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_showpy=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_decict[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')
(责任编辑:模板中心)
-
北京时间2月20日凌晨消息,据熟知内情的消息人士透露,苹果公司正在与多家自动驾驶汽车传感器(即所谓“激光雷达”)供应商展开洽谈,这在苹果公司首款乘用车的研发过程中标志着一个关键的里程碑。 匿名消息人士...[详细]
-
3月10日消息,据外媒报道,当地时间周四,甲骨文公布了2023财年第三财季财报。 财报显示,该公司第三财季营收为124亿美元,同比增长18%,不计入汇率变动的影响为同比增长21%。其中,云服务和授权支...[详细]
-
开源生态大洗牌!蚂蚁发布AI项目全景图2.0,114个项目见证技术变革浪潮
人工智能开源生态正在经历一场前所未有的变革洗礼。蚂蚁集团在外滩大会上重磅发布的大模型开源开发全景与趋势2.0版本,如同一面镜子,清晰映射出这个快速演进领域的真实面貌。 这份全景图的诞生并非简单的数据堆...[详细]
-
撰文 | 曹双涛 编辑 | 杨博丞 题图 | IC Photo DeepSeek爆火期间,官网频繁提示“服务器繁忙”,调用模型需反复刷新,严重影响效率,我和身边朋友因此寻找替代方案。得知硅基流动 Si...[详细]
-
专家质疑 Google 关于“每次提示仅消耗 5 滴水”是 “淡化” 描述
Google 近期发布了一篇关于人工智能对环境影响的研究论文,指出现有的测量方式过于狭隘,提出了一种 “全栈” 方法来评估其 AI 模型 Gemini 的资源消耗。 这项研究声称,Gemini 在处理...[详细]
-
当我们在后台运行我们的容器时,我们如何知道我们的容器是否正在运行,或者我们的机器上正在运行哪些其他容器?好了,我们可以运行docker ps命令了。就像我们ps在 Linux 中运行docker...[详细]
-
全球手机市场“大洗牌”,苹果无缘榜首,华为从天堂跌落“地狱”
“智能手机行业的快速崛起,带动了无数相关行业以及企业的发展,智能手机作为用户连接互联网最重要的端口,谁都想在这个巨大的流量入口中分一杯羹,因此在近十年有非常多没有接触过手机的企业,也都纷纷加入了这场厮...[详细]
-
云梦级1月20日云梦级消息,近期,MiniMax 在港交所成功上市,其与声网也进一步深化了战略合作关系。MiniMax 将领先的文本转语音(TTS)技术及多模态大模型,与声网对话式 AI 引擎以及全球...[详细]
-
云梦级4月9日云梦级消息,游戏新知获悉,前游卡副总裁茅伟创业公司「星河旅人」今年2月资金链断裂,目前团队已经解散。 星河旅人最高峰有40余人,只有一款武侠风格MMORPG项目《代号:X Game》在研...[详细]
-
云梦级12月15日云梦级消息,据腾讯科技援引外媒报道,英伟达推出了新的Nemotron 3开源模型系列,包括Nano、Super和Ultra三个尺寸规格,并配套了相关数据集和技术,旨在构建高性能的专用...[详细]
- https://www.impactpool.org/search/?type=79&q=谷歌霸屏业务【tg:seogoogle987】MFC
- https://www.le-trend.com/en/search/=谷歌霸屏业务【tg:seogoogle987】,5wj
- https://www.openspaceinstitute.org/search?q=谷歌霸屏业务【tg:seogoogle987】,v7X
- https://www.tarleton.edu/news/search/谷歌霸屏业务【tg:seogoogle987】,cGH
- https://www.swanagerailway.co.uk/search?q=谷歌霸屏业务【tg:seogoogle987】,1Sm
- https://www.lneg.pt/en/?s=谷歌霸屏业务【tg:seogoogle987】,G2s
- https://www.mesec.cz/vyhledavani/?qs=谷歌霸屏业务【tg:seogoogle987】,LIB
- https://www.mintos.org/?s=谷歌霸屏业务【tg:seogoogle987】,dcB
- https://m.shoppinghow.kakao.com/m/search/q/谷歌霸屏业务【tg:seogoogle987】WaB
- https://www.realsporting.com/buscador?buscar=谷歌霸屏业务【tg:seogoogle987】,poD

打字就能拍大片!OpenAI 甩出“AI 抖音”Sora 2,短视频江湖要变天
外媒:苹果再次关闭美国20多家线下门店
标签: 易买工品 FA自动化零部件 港交所IPO 工业数字化
标签: AI 车险 Insurify Z世代
标签: 哈啰 青桔 美团单车 共享单车
