诶呀我去太感谢了终于找到实现点击地图省份实现跳转了。
参考:利用pyecharts实现中国省与市之间的跳转_pyecharts点击地图跳转-CSDN博客
需要注意的问题:
1.如果想在全国地图显示数据,data数据中要用如:北京市、广东省、香港特别行政区、内蒙古自治区,这种带有后缀的。(可能有些不需要后缀也可以显示数据,但是我的就是显示不出来,必须带有后缀才显示出来了)
2.如果要生成省地图,给入的数据要用:北京、广东、香港、内蒙古,这种不带后缀的。
GDP.csv数据(我乱打的数据)
province,class 黑龙江省,1 吉林省,23 辽宁省,4 河北省,3 甘肃省,24 青海省,46 陕西省,3 河南省,23 山东省,14 山西省,23 安徽省,45 湖北省,67 湖南省,32 江苏省,44 四川省,35 贵州省,36 云南省,78 浙江省,134 江西省,24 广东省,124 福建省,45 台湾省,56 海南省,78 新疆维吾尔自治区,132 内蒙古自治区,24 宁夏回族自治区,14 广西壮族自治区,134 西藏自治区,25 北京市,134 上海市,453 天津市,67 重庆市,45 香港特别行政区,67 澳门特别行政区,43View Code
python代码:
import pandas as pd from pyecharts.charts import Map from pyecharts import options as opts from pyecharts.globals import ThemeType import re data = pd.read_csv('GDP.csv') province = list(data["province"]) pro_sta=[] # 去除后缀 clss = list(data["class"]) list = [list(z) for z in zip(province, clss)] print(province) print(list) for i in province: # 设置要替换的字符 i=re.sub('省|市|自治区|壮族自治区|回族自治区|维吾尔自治区|特别行政区','',i) # print(i) pro_sta.append(i) # # maptype='china' 只显示全国直辖市和省级 map = Map(init_opts=opts.InitOpts(width="1500px", height="800px", theme=ThemeType.VINTAGE)) # 添加主题 map.set_global_opts( # 标题配置项 title_opts=opts.TitleOpts( title="等级分布地图", pos_left="center" ), # 图例配置项 legend_opts=opts.LegendOpts( is_show=True, pos_left="left", ), # 视觉影射配置项 visualmap_opts=opts.VisualMapOpts( min_=0, # 组件最小值 max_=300, range_text = ['等级程度分布颜色区间:', ''], # 两端文本名称 is_piecewise=True, # 定义图例为分段型,默认为连续的图例 pos_top= "middle", # 组件离容器左侧的距离 pos_left="left", orient="vertical", # 布局方式为垂直布局,水平为horizon split_number=5 # 分成5个区间 ) ) map.add("程度", list, maptype="china") map.render("全国.html") for i in pro_sta: province_city = ( Map(init_opts=opts.InitOpts(width="1500px", height="800px", theme=ThemeType.VINTAGE)) .add("", list, # 可以自己写一个字典写各个省份下的市所对应的数据,在这里只是一个range() i) .set_global_opts( title_opts=opts.TitleOpts(title=i + "地图"), visualmap_opts=opts.VisualMapOpts( min_=0, max_=300, is_piecewise=True ) ) .render(path=i + "地图.html") )
在生成的全国.html中添加代码:
注意
1.需要将代码中 chart_ 后面的一串东西改成自己生成的 全国.html 中 <div id=""></div> 中id的数字
2.这一串代码要放在<script></script> 中的最后!!!
chart_00f5b25356cf4f7cb940622bca787821.on('click', function (param){ var selected = param.name; if (selected) { switch(selected){ case '北京市': location.href = "./北京地图.html"; break; case '上海市': location.href = "./上海地图.html"; break; case '天津市': location.href = "./天津地图.html"; break; case '四川省': location.href = "./四川地图.html"; break; case '安徽省': location.href = "./安徽地图.html"; break; case '山东省': location.href = "./山东地图.html"; break; case '江苏省': location.href = "./江苏地图.html"; break; case '江西省': location.href = "./江西地图.html"; break; case '河北省': location.href = "./河北地图.html"; break; case '浙江省': location.href = "./浙江地图.html"; break; case '海南省': location.href = "./海南地图.html"; break; case '湖北省': location.href = "./湖北地图.html"; break; case '湖南省': location.href = "./湖南地图.html"; break; case '广东省': location.href = "./广东地图.html"; break; case '福建省': location.href = "./福建地图.html"; break; case '甘肃省': location.href = "./甘肃地图.html"; break; case '广西壮族自治区': location.href = "./广西地图.html"; break; case '贵州省': location.href = "./贵州地图.html"; break; case '河南省': location.href = "./河南地图.html"; break; case '黑龙江省': location.href = "./黑龙江地图.html"; break; case '内蒙古自治区': location.href = "./内蒙古地图.html"; break; case '吉林省': location.href = "./吉林地图.html"; break; case '辽宁省': location.href = "./辽宁地图.html"; break; case '宁夏回族自治区': location.href = "./宁夏地图.html"; break; case '青海省': location.href = "./青海地图.html"; break; case '山西省': location.href = "./山西地图.html"; break; case '陕西省': location.href = "./陕西地图.html"; break; case '台湾省': location.href = "./台湾地图.html"; break; case '西藏自治区': location.href = "./西藏地图.html"; break; case '新疆维吾尔自治区': location.href = "./新疆地图.html"; break; case '云南省': location.href = "./云南地图.html"; break; case '重庆市': location.href = "./重庆地图.html"; break; case '香港特别行政区': location.href = "./香港地图.html"; case '澳门特别行政区': location.href = "./澳门地图.html"; default: break; } } });
实现效果:
点击跳转
标签:case,pyecharts,href,地图,break,点击,html,location,跳转 From: https://www.cnblogs.com/hmy22466/p/18114494