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

求助:绘制含百分比与标题的方形比例权重图(附DF数据)

绘制方形比例图展示行业权重的实现方案

可以用Python的squarify库(专门用于生成树状方块图)快速实现需求,以下是完整代码示例:

步骤1:安装依赖库

如果未安装squarify和pandas,先执行安装命令:

pip install squarify pandas matplotlib

步骤2:完整实现代码

import squarify
import pandas as pd
import matplotlib.pyplot as plt

# 加载数据
data = pd.DataFrame({
    'BUSD': [11.70257],
    'USDC': [37.16381],
    'DAI': [4.529632],
    'GEMINI': [0.1128532],
    'HUSD': [0.1778291],
    'PAX': [0.6171099],
    'STASIS': [0.02256854],
    'UST': [0.3773179],
    'USDT': [44.49382],
    'TRU': [0.8024782]
})

# 提取标签和权重数值
labels = data.columns.tolist()
sizes = data.iloc[0].tolist()

# 格式化标签:显示名称+百分比(保留2位小数)
formatted_labels = [f"{label}\n{size:.2f}%" for label, size in zip(labels, sizes)]

# 设置绘图风格
plt.figure(figsize=(12, 8))
squarify.plot(sizes=sizes, label=formatted_labels, alpha=0.8)

# 隐藏坐标轴
plt.axis('off')
plt.title('行业权重方形比例图')
plt.show()

代码说明

  • squarify.plot()会自动根据数值比例生成对应大小的方块
  • formatted_labels把每个变量的名称和百分比拼接起来,实现方块内显示双内容
  • 通过alpha参数调整方块透明度,figsize控制画布大小

替代方案(纯matplotlib实现)

如果不想额外安装库,也可以用matplotlib的patches.Rectangle手动绘制,但需要自行计算每个方块的坐标和尺寸,代码复杂度更高,推荐优先使用squarify方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:56:05