在这种情况下,我想将一个变量绘制为常量total_cap,并将其绘制在maxused_capacity和meanused_capacity值上。本质上,我希望看到堆叠条形图的外观,但我不希望将总计汇总在一起,每个站点的条形高度应仅设置为Total_Cap的值,而其他两个值应位于
示例df:
SITE Total_Cap maxused_Cap meanused_Cap
A 4 3 2
B 8 7 4
C 12 11 5
D 16 13 10
我尝试了这段代码,但是在绘制条形图时它只是将值加在一起
x= df4[['SITE','maxused_cap','Total_Cap']]
y= x.set_index('SITE')
z=y.groupby('SITE')
z.plot.bar(stacked=True).mean()
plt.show()
答案 0 :(得分:0)
IIUC可以通过缩放相对于Total_Cap
df.set_index('SITE', inplace=True)
df[['maxused_Cap','meanused_Cap']].div(
(df['maxused_Cap']+df['meanused_Cap'])/df['Total_Cap'],
axis=0).plot.bar(stacked=True, figsize=(8,6));
出局:
设置数据框
import pandas as pd
import io
t = '''
SITE Total_Cap maxused_Cap meanused_Cap
A 4 3 2
B 8 7 4
C 12 11 5
D 16 13 10'''
df = pd.read_csv(io.StringIO(t), sep='\s+')
df
出局:
SITE Total_Cap maxused_Cap meanused_Cap
0 A 4 3 2
1 B 8 7 4
2 C 12 11 5
3 D 16 13 10