five羊 2023-05-08 10:35 采纳率: 100%
浏览 104
已结题

py-echarts给地图标签添加内容

请问如何在pyecharts作地图时展示更多文字信息?

最近作图遇到了一个问题:
我想在滑动生成的标签下面添加文字,比如把河北省每个市包含的几所学校名字列在标签下面。
使得鼠标滑过时,即可展示全部信息

img

这是我的代码:

# 需要引用的库
from pyecharts import options as opts
from pyecharts.charts import Map

设置河北省优秀生源基地学校所存在的相关城市,并设置学校数量


school = (
('石家庄市', 9),
('唐山市', 5),
('秦皇岛市', 2),
('邯郸市', 8),
('邢台市', 10),
('保定市', 23),
('张家口市', 3),
('承德市', 1),
('沧州市', 12),
('廊坊市', 2),
('衡水市', 12)
)

# 生成省份地图
def create_province_map():

    (   # 大小设置
        Map()
        .add(
            series_name="学校数量",
            data_pair=school,
            maptype="河北",)

        # 全局配置项
        .set_global_opts(
            # 设置标题
            title_opts=opts.TitleOpts(title="河北省优秀生源基地分布图"),
            # 设置标准显示
            visualmap_opts=opts.VisualMapOpts(max_=30, is_piecewise=True, split_number=3),)

        # 系列配置项
        .set_series_opts(
            # 标签名称显示,默认为True
            label_opts=opts.LabelOpts(is_show=True, color="blue"))

        # 生成本地html文件
        .render("河北省优秀生源基地分布图.html")
    )

create_province_map()

我想把如下这些数据也体现在图上,不知道该怎么实现:


DataList = [
    ('石家庄市',  ['正定中学','河北辛集中学','新乐一中','石家庄第二中学','河北正中实验中学','河北辛集第一中学','石家庄精英中学','石家庄二十四中','藁城区第一中学']),
    ('唐山市',  ['河北乐亭中学','唐山市丰南区第一中学','唐山市第二中学','唐山市第一中学','迁安市第一中学']),
    ('秦皇岛市',  ['秦皇岛一中', '秦皇岛昌黎一中']),
    ('邯郸市',  ['曲周县第一中学', '邯郸市第四中学', '邯郸武安第一中学', '邯郸涉县一中', '邯郸市第一中学', '魏县第一中学', '邯郸市第三中学(河北邯郸外国语学校)', '邯郸市永年区第一中学']),
    ('邢台市', ['邢台市第一中学', '南宫中学', '邢台市第二中学', '河北内丘中学', '河北巨鹿中学', '临城中学', '沙河市第一中学', '邢台清河中学', '河北隆尧第一中学', '河北宁晋中学']),
    ('保定市', ['保定市第一中学', '保定市第二中学' ,'保定市第三中学', '徐水综合高级中学', '满城中学', '清苑中学', '易县中学', '望都中学', '博野中学', '定兴县第三中学', '定兴中学', '高碑店一中',
                 '河北安国中学', '河北定州中学', '保定唐县一中', '雄县中学', '河北安新中学', '河北省曲阳县第一高级中学', '河北祖冲之中学', '定州市第二中学', '保定市徐水区第一中学', '河北高阳中学', '河北阜平中学']),
    ('张家口市', ['张家口宣化一中', '张家口市第一中学', '张家口赤城中学']),
    ('承德市', ['丰宁满族自治县第一中学']),
    ('沧州市',  ['任丘市第一中学','沧州市第一中学','南皮县第一中学','颐和中学','河北省献县第一中学','沧县中学','沧州二中', '沧州海兴中学', '泊头一中', '河间一中', '黄骅市中学', '河北省肃宁县第一中学']),
    ('廊坊市',['廊坊三河一中', '廊坊大成一中']),
    ('衡水市',  ['衡水中学', '安平中学', '武强中学', '武邑中学', '衡水二中', '衡水市第十三中学', '衡水市深州中学', '衡水市枣强中学', '河北冀州中学','河北郑口中学','河北景县中学','衡水市第十四中学']),
]

最好能把我的需求整合起来,直接给我一段能跑起来的代码,谢谢๑•́₃•̀๑

  • 写回答

4条回答 默认 最新

  • 阳光宅男xxb 2023-05-08 15:14
    关注

    鼠标放上去显示该市下面所有的学校名称,解决方法就是,将DataList数据放到html的js中,通过 opts.TooltipOpts设置鼠标停留显示学校名称,全部代码如下:

    # 需要引用的库
    from pyecharts import options as opts
    from pyecharts.charts import Map
    from pyecharts.commons.utils import JsCode
    import json
    # 设置河北省优秀生源基地学校所存在的相关城市,并设置学校数量
    school = [
        ('石家庄市', 9),
        ('唐山市', 5),
        ('秦皇岛市', 2),
        ('邯郸市', 8),
        ('邢台市', 10),
        ('保定市', 23),
        ('张家口市', 3),
        ('承德市', 1),
        ('沧州市', 12),
        ('廊坊市', 2),
        ('衡水市', 12)
    ]
    
    # 设置每个城市中的学校名称
    DataList = [
        ('石家庄市', ['正定中学', '河北辛集中学', '新乐一中', '石家庄第二中学', '河北正中实验中学', '河北辛集第一中学', '石家庄精英中学', '石家庄二十四中', '藁城区第一中学']),
        ('唐山市', ['河北乐亭中学', '唐山市丰南区第一中学', '唐山市第二中学', '唐山市第一中学', '迁安市第一中学']),
        ('秦皇岛市', ['秦皇岛一中', '秦皇岛昌黎一中']),
        ('邯郸市', ['曲周县第一中学', '邯郸市第四中学', '邯郸武安第一中学', '邯郸涉县一中', '邯郸市第一中学', '魏县第一中学', '邯郸市第三中学(河北邯郸外国语学校)', '邯郸市永年区第一中学']),
        ('邢台市', ['邢台市第一中学', '南宫中学', '邢台市第二中学', '河北内丘中学', '河北巨鹿中学', '临城中学', '沙河市第一中学', '邢台清河中学', '河北隆尧第一中学', '河北宁晋中学']),
        ('保定市',
         ['保定市第一中学', '保定市第二中学', '保定市第三中学', '徐水综合高级中学', '满城中学', '清苑中学', '易县中学', '望都中学', '博野中学', '定兴县第三中学', '定兴中学',
          '高碑店一中',
          '河北安国中学', '河北定州中学', '保定唐县一中', '雄县中学', '河北安新中学', '河北省曲阳县第一高级中学', '河北祖冲之中学', '定州市第二中学', '保定市徐水区第一中学', '河北高阳中学',
          '河北阜平中学']),
        ('张家口市', ['张家口宣化一中', '张家口市第一中学', '张家口赤城中学']),
        ('承德市', ['丰宁满族自治县第一中学']),
        (
            '沧州市', ['任丘市第一中学', '沧州市第一中学', '南皮县第一中学', '颐和中学', '河北省献县第一中学', '沧县中学', '沧州二中', '沧州海兴中学', '泊头一中', '河间一中', '黄骅市中学',
                    '河北省肃宁县第一中学']),
        ('廊坊市', ['廊坊三河一中', '廊坊大成一中']),
        ('衡水市', ['衡水中学', '安平中学', '武强中学', '武邑中学', '衡水二中', '衡水市第十三中学', '衡水市深州中学', '衡水市枣强中学', '河北冀州中学', '河北郑口中学', '河北景县中学',
                 '衡水市第十四中学']),
    ]
    
    DataList = str(DataList)
    
    
    # 生成省份地图
    def create_province_map():
    
        tooltip_opts = opts.TooltipOpts(is_show=True,trigger='item', trigger_on='mousemove|click',formatter= JsCode(
            '''
             function showSchool(params){
            DataList='''+DataList+';'
            '''
                 var tips = params['name']+params['value']+''+':'+'<br>';
                 for(var i =0;i<DataList[params['dataIndex']].length;i++){
                   tips = tips+DataList[params['dataIndex']][i]+'<br>';
                 }
                 return tips;
                 }
            '''
        ))
        # 自定义Label
        label_opts = opts.LabelOpts(
            is_show=True,
    
            color="blue",
            font_size=12,
            position="bottom",
            interval=0,
            rotate=0
        )
    
        (  # 大小设置
            Map()
                .add(
                series_name="学校数量",
                data_pair=school,
                maptype="河北",
    
    
                label_opts=label_opts  # 添加自定义Label
            )
    
                # 全局配置项
                .set_global_opts(
                # 设置标题
                title_opts=opts.TitleOpts(title="河北省优秀生源基地分布图"),
                # 设置标准显示
                visualmap_opts=opts.VisualMapOpts(max_=30, is_piecewise=True, split_number=3),
                tooltip_opts = tooltip_opts # 添加自定义Label
            )
    
    
                # 生成本地html文件
                .render("河北省优秀生源基地分布图.html")
        )
    
    
    create_province_map()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月16日
  • 已采纳回答 5月8日
  • 修改了问题 5月8日
  • 修改了问题 5月8日
  • 展开全部

悬赏问题

  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红
  • ¥15 想问问富文本拿到的html怎么转成docx的