解决不出啊
这是代码
import pandas as pd
import matplotlib.pyplot as plt
读取 Excel 文件
data = pd.read_excel('data.xlsx')
根据权重从高到低排序
data.sort_values(by='权重', ascending=False, inplace=True, ignore_index=True)
计算权重占比
sum_weight = data['权重'].sum()
data['权重占比'] = data['权重'] / sum_weight
绘制立面图
fig, ax = plt.subplots()
ax.bar(data.index, data['权重'], width=0.8, depthshade=True, alpha=0.7, label='权重')
ax.set_xlabel("项")
ax.set_ylabel("权重")
ax.set_zlabel("权重占比")
for i, z in enumerate(data['权重占比']):
label = f"{data.iloc[i, 0]} ({data.iloc[i, -1] * 100:.2f}%)"
ax.text(i, data.iloc[i, 1], z + 0.01, label, ha='center')
plt.show()