python百分比堆积条形图_MatPlotLib中的100%堆积条形图

我正试图使用来自this site的学院记分卡数据在MatPlotLib中创建一个100%堆积条形图。

共有38列:

[在此插入学习领域]授予学位的百分比这解释了为什么有38个领域!

我有一个学校的子集,我想做这个堆积图。

我试着按照指示行事。对。这是很长的代码,但我想按本子来演。(加上我在这个博客上一直很走运)

数据来自这些PCIP(按研究领域授予学位的百分比),以百分比的形式出现,所以我不必遵循克里斯的计算,因为他们已经完成了。

运行代码时出现错误:bar_width = 1

bar_l = [i for i in range(len(df['PCIP01']))]

tick_pos = [i+(bar_width/2) for i in bar_l]

# Create a figure with a single subplot

f, ax = plt.subplots(1, figsize=(10,5))

ax.bar(bar_l,

degrees.PCIP01,

label='PCIP01',

alpha=0.9,

color='#2D014B',

width=bar_width

)

ax.bar(bar_l,

PCIP04,

label='PCIP04',

alpha=0.9,

color='#28024E',

width=bar_width

)

[在剩下的36块地里,以此类推# Set the ticks to be School names

plt.xticks(tick_pos, degrees['INSTNM'])

ax.set_ylabel("Percentage")

ax.set_xlabel("")

# Let the borders of the graphic

plt.xlim([min(tick_pos)-bar_width, max(tick_pos)+bar_width])

plt.ylim(-10, 110)

# rotate axis labels

plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')

# shot plot

这就是我收到的错误:ValueError Traceback (most recent call last)

in ()

7 alpha=0.9,

8 color='#2D014B',

----> 9 width=bar_width

10 )

11 ax.bar(bar_l,

C:\Users\MYLOCATION\Anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, *args, **kwargs)

1889 warnings.warn(msg % (label_namer, func.__name__),

1890 RuntimeWarning, stacklevel=2)

-> 1891 return func(ax, *args, **kwargs)

1892 pre_doc = inner.__doc__

1893 if pre_doc is None:

C:\Users\MYLOCATION\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in bar(self, left, height, width, bottom, **kwargs)

2077 if len(height) != nbars:

2078 raise ValueError("incompatible sizes: argument 'height' "

-> 2079 "must be length %d or scalar" % nbars)

2080 if len(width) != nbars:

2081 raise ValueError("incompatible sizes: argument 'width' "

ValueError: incompatible sizes: argument 'height' must be length 38678 or scalar

有谁能帮助我简化这些代码,以便我可以创建这个堆积的100%条形图?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值