创建一个根据值 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()
这是我对你的问题的尝试:
示例代码:
# 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()
结果:
我想在 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()
这是我对你的问题的尝试:
示例代码:
# 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()