创建一个根据值 excel 填充的饼图?

Creating a pie-chart that is filled up based on values excel?

我想在 excel 中创建一个基于值填充的饼图。因此,它将具有与 table 中的行一样多的切片,并且根据行的实际数量,它会相应地填充切片。下面,我在饼图中展示了我正在寻找的内容的粗略草图,以清楚地解释它。假设有 8 行,总数为 100;因为没有切片是满的,所以没有行总数为 100。如果您认为有一个可以在 python 中编码的解决方案,那么请您推荐一个可以查看的地方吗?

显然不按比例

您可以使用 matplotlib 中存在的极轴上的条形图

示例代码

    import numpy as np
    import matplotlib.pyplot as plt


    # Fixing random state for reproducibility
    np.random.seed(19680801)

    # Compute pie slices
    N = 20
    theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
    radii = 10 * np.random.rand(N)
    width = np.pi / 4 * np.random.rand(N)
    colors = plt.cm.viridis(radii / 10.)

    ax = plt.subplot(111, projection='polar')
    ax.bar(theta, radii, width=width, bottom=0.0, color=colors, alpha=0.5)

    plt.show()

official documentation

这是我对你的问题的尝试:

示例代码:

# Create sample dataset:
index= ['A','B','C','D']
columns= ['pctLoad','pctTotal']
values= [[35,41],[39,12],[54,22],[27,25]]
df= pd.DataFrame(values, index=index, columns=columns, dtype= float)
Index pctLoad pctTotal
A 35 41
B 39 12
C 54 22
D 27 25

假设 pctLoad 作为变量在其自身限制内使用的指标(百分比),即条形图。其中pctTotal表示每个变量(A、B、C、D)的百分比份额,即饼图。

width= df['pctTotal']/100*2*np.pi
theta= [0]
for i, j in enumerate(width):
    theta.append(theta[-1] + j)
del(theta[-1])

fig, ax= plt.subplots(figsize= (5, 5))
ax = plt.subplot(projection='polar')
ax.bar(theta, df['pctLoad'], width= width, align='edge', color= ['tab:blue', 'lightblue','grey', 'lightgrey'], alpha= 0.5, edgecolor= 'k')
ax.set_xticklabels([])
plt.show()

结果: