使用 pygal.maps.world 时,有没有办法格式化显示一个国家人口的数字?

Posted

技术标签:

【中文标题】使用 pygal.maps.world 时,有没有办法格式化显示一个国家人口的数字?【英文标题】:When using pygal.maps.world is there a way to format the numbers that display a country's population? 【发布时间】:2019-03-30 05:44:06 【问题描述】:

我正在使用 pygal 制作一张显示 2010 年以来世界国家人口的交互式地图。我正在尝试找到一种方法,以便该国家的人口以插入逗号的形式显示,即 10,000 而不仅仅是 10000。

我已经尝试使用 ":,".format(x) 将数字读入我的不同人口水平的列表中,但这会导致错误。我相信这是因为这会将值更改为字符串。

我也尝试插入一段我在网上找到的代码

 wm.value_formatter = lambda x: ":,".format(x).

这不会导致任何错误,但也不会修复数字的格式。我希望有人可能知道内置函数,例如:

wm_style = RotateStyle('#336699')

这让我可以设置配色方案。

下面是我绘制地图的代码部分。

wm = World()

wm.force_uri_protocol = "http"

wm_style = RotateStyle('#996699')
wm.value_formatter = lambda x: ":,".format(x)
wm.value_formatter = lambda y: ":,".format(y)
wm = World(style=wm_style)

wm.title = "Country populations year 2010"
wm.add('0-10 million', cc_pop_low)
wm.add("10m to 1 billion", cc_pop_mid)
wm.add('Over 1 billion', cc_pop_high)

wm.render_to_file('world_population.svg')

【问题讨论】:

【参考方案1】:

设置value_formatter 属性将更改标签格式,但在您的代码中,您在设置属性后重新创建World 对象。这个新创建的对象将具有默认值格式化程序。您还可以删除设置value_formatter 属性的行之一,因为它们都实现了相同的功能。

重新排序代码将解决您的问题:

wm_style = RotateStyle('#996699')
wm = World(style=wm_style)
wm.value_formatter = lambda x: ":,".format(x)
wm.force_uri_protocol = "http"

wm.title = "Country populations year 2010"
wm.add('0-10 million', cc_pop_low)
wm.add("10m to 1 billion", cc_pop_mid)
wm.add('Over 1 billion', cc_pop_high)

wm.render_to_file('world_population.svg')

【讨论】:

完美运行。感谢您解释我的错误。

以上是关于使用 pygal.maps.world 时,有没有办法格式化显示一个国家人口的数字?的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义字体时,有没有办法最小化它们使用的大小?

有没有办法在使用 Azure 认知搜索服务升序排序时忽略空值?

将@ApiQuery 与nestJS 和swagger 一起使用时,有没有办法声明默认值?

有没有办法在使用 Prometheus 的 IIS 站点出现故障时产生警报?

使用 Unity 和 Photon PUN,有没有办法在运行时使用 SetTile() 同步更改对瓷砖地图的更改?

读取镶木地板文件时,有没有办法在 basePath 中使用通配符?