介绍
怎么在matplotlib中利用酒吧()函数实现一个百分比堆积柱状图?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
适用于少量数据,数据结构需要手动构造。
import matplotlib.pyplot as plt labels =, (& # 39; g1 # 39;,, & # 39; g2 # 39;,, & # 39; g3 # 39;,, & # 39; g4 # 39;,, & # 39; g5 # 39;】 first =,(20岁,34岁,30岁,35岁,27岁) second =,(25岁,32岁,34岁,20日,25) third =,(21日,31日,37岁,21日,28日) fourth =,(26岁,31岁,35岁,27岁,21) data =,(第一,,第二,第三,第四) 时间=x 范围(len(标签) width 0.35=, #,将bottom_y元素都初始化为0 时间=bottom_y [0], *, len(标签) #,计算每组柱子的总和,为计算百分比做准备 sums =,(和(i), for 小姐:拷贝zip(第一,,第二,第三,第四个)) for 小姐:拷贝数据: ,#计算每个柱子的高度,即百分比=,y [/b for ,, b 拷贝zip(我,,金额) ,plt.bar(宽度,x,, y,,底部=bottom_y) ,#计算底参数的位置=,bottom_y [(a + b), for ,, b 拷贝zip (y), bottom_y)) plt.xticks (x,,标签) plt.title (& # 39; Percent stacked  bar & # 39;) plt.show ()
使用numpy版本
第一个版本的缺陷在于数据需要手动构造,而且计算稍微繁琐一些。
使用numpy便于处理规模比较大且已存储在文件中数据的数据,计算更简便。
import numpy as np import matplotlib.pyplot  as plt labels =, (& # 39; g1 # 39;,, & # 39; g2 # 39;,, & # 39; g3 # 39;,, & # 39; g4 # 39;,, & # 39; g5 # 39;】 first =,(20岁,34岁,30岁,35岁,27岁) second =,(25岁,32岁,34岁,20日,25) third =,(21日,31日,37岁,21日,28日) fourth =,(26岁,31岁,35岁,27岁,21) data =,(第一,,第二,第三,第四) 时间=x 范围(len(标签) width 0.35=, #,将bottom_y元素都初始化为0 时间=bottom_y np.zeros (len(标签) 时间=data np.array(数据) #,按列计算计算每组柱子的总和,为计算百分比做准备 时间=sums np.sum(数据,,轴=0) for 小姐:拷贝数据: ,#计算每个柱子的高度,即百分比=,y 小姐:/金额 ,plt.bar(宽度,x,, y,,底部=bottom_y) ,#计算底参数的位置=,,bottom_y  y + bottom_y plt.xticks (x,,标签) plt.title (& # 39; Percent stacked  bar & # 39;) plt.show ()
关于怎么在matplotlib中利用酒吧()函数实现一个百分比堆积柱状图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。