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

如何在Squarify绘制的树状图数值后添加百分号%符号

Squarify树状图数值添加百分号后缀解决方案

核心思路

Squarify的value参数支持直接传入字符串类型的文本,不需要仅传入数值,你可以提前将数值按需求格式化后传入即可实现自定义显示效果。

注意事项

你原代码中tamaños2 = [61,755, 32,992]的写法会被Python识别为包含4个整数元素的列表,需要修改为用小数点区分整数、小数位的写法:tamaños2 = [61.755, 32.992]

完整可运行代码

import numpy as np
import squarify as sq
import matplotlib.pyplot as plt

ListaCryptos = ['BTC', 'ETH']
# 修正数值格式
tamaños2 = [61.755, 32.992]
# 可自定义你需要的配色
colores = ['#F7931A', '#627EEA']

# 格式化数值为「逗号做小数点+百分号」格式
formatted_values = []
for val in tamaños2:
    # 保留两位小数
    rounded_val = np.round(val, 2)
    # 替换小数点为逗号,添加百分号后缀
    formatted_str = f"{rounded_val:.2f}".replace('.', ',') + '%'
    formatted_values.append(formatted_str)

sq.plot(
    sizes=np.around(tamaños2, decimals=2),
    label=ListaCryptos,
    value=formatted_values,
    color=colores,
    pad=True,
    alpha=0.9,
    bar_kwargs=dict(linewidth=2, edgecolor="white"),
    text_kwargs={'fontsize': 32}
)

plt.title("Rentabilidad", fontsize=32, fontweight="bold")
plt.axis('off')
plt.show()

格式适配说明

如果不需要使用逗号作为小数分隔符,仅需保留百分号后缀,可将格式化逻辑简化为:
formatted_values = [f"{np.round(val, 2):.2f}%" for val in tamaños2]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:06