You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pygal地图中点击国家时显示文本(如首都名称)

解决Pygal世界地图点击显示自定义文本的问题

Pygal默认会把你传入的数值作为点击国家时的提示内容,要替换成自定义文本(比如首都名称),不能直接用str()转换数值,而是要给每个国家传入包含label字段的字典,具体实现如下:

修改后的完整代码

import pygal

# 创建世界地图实例
worldmap = pygal.maps.world.World()
worldmap.title = 'Countries'

# 用字典结构传入每个国家的自定义提示文本
worldmap.add('Countries & Capitals', {
        'aq': {'value': 69, 'label': 'No Capital'},
        'cd': {'value': 30, 'label': 'Kinshasa'},
        'de': {'value': 40, 'label': 'Berlin'},
        'eg': {'value': 50, 'label': 'Cairo'},
        'ga': {'value': 45, 'label': 'Libreville'},
        'hk': {'value': 23, 'label': 'Hong Kong'},
        'in': {'value': 0, 'label': 'New Delhi'},
        'jp': {'value': 65, 'label': 'Tokyo'},
        'nz': {'value': 41, 'label': 'Wellington'},
        'kz': {'value': 32, 'label': 'Nur-Sultan'},
        'us': {'value': 66, 'label': 'Washington DC'}
})

# 保存并生成SVG文件
worldmap.render_to_file('worldmapresult.svg')
print("Success")

关键说明

  • 每个国家的取值从单一数字改成了字典,其中:
    • value:保留原来的数值(Pygal需要数值处理地图元素的渲染逻辑,可根据需求调整或移除,建议保留)
    • label:设置点击时要显示的自定义文本,比如首都名称
  • 如果不需要显示数值,只想展示纯文本,可以添加以下配置隐藏数值:
    worldmap.tooltip_fancy_mode = False
    worldmap.value_formatter = lambda x: ''
    

内容的提问来源于stack exchange,提问作者Drapal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:20:38