Python+matplotlib如何绘制堆叠图(matplotlib,python,开发技术)

时间:2024-05-05 02:55:38 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、水平堆叠图

堆叠图其实就是柱状图的一种特殊形式

frommatplotlibimportpyplotaspltplt.style.use('seaborn')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family':"MicrosoftYaHei"})plt.title("中国票房2021TOP9")plt.bar(cnbodfgbsort.index,cnbodfgbsort.PERSONS)plt.bar(cnbodfgbsort.index,cnbodfgbsort.PRICE)plt.bar(cnbodfgbsort.index,cnbodfgbsort.points)plt.show()

堆叠图效果

Python+matplotlib如何绘制堆叠图

可以看到有部分蓝色的数据被遮挡了,如果我们想全部展现,可以:

index_x=np.arange(len(cnbodfgbsort.index))index_xw=0.15
frommatplotlibimportpyplotaspltplt.style.use('classic')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family':"MicrosoftYaHei"})plt.title("中国票房2021TOP9")plt.bar(index_x,cnbodfgbsort.PERSONS,width=w)plt.bar(index_x+w,cnbodfgbsort.PRICE,width=w)plt.bar(index_x+2*w,cnbodfgbsort.points,width=w)plt.show()

Python+matplotlib如何绘制堆叠图

可以看到Excel的数据源当中BO与PRICE和PERSONS的数字相差过大,如果做堆叠图的话,BO会将其他的都进行覆盖,无法显示好的效果:

Python+matplotlib如何绘制堆叠图

因为数据相差实在太大,我们可以直接让BO除以1000:

frommatplotlibimportpyplotaspltplt.style.use('classic')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family':"MicrosoftYaHei"})plt.title("中国票房2021TOP9")plt.bar(cnbodfgbsort.index,cnbodfgbsort.PERSONS)plt.bar(cnbodfgbsort.index,cnbodfgbsort.PRICE)plt.bar(cnbodfgbsort.index,cnbodfgbsort.BO/1000)plt.bar(cnbodfgbsort.index,cnbodfgbsort.points)plt.show()

Python+matplotlib如何绘制堆叠图

frommatplotlibimportpyplotaspltplt.style.use('classic')plt.figure(figsize=(15,9))plt.rcParams.update({'font.family':"MicrosoftYaHei"})plt.title("中国票房2021TOP9")plt.bar(index_x-w,cnbodfgbsort.BO/1000,width=w)#直接让BO除以1000plt.bar(index_x,cnbodfgbsort.PERSONS,width=w)plt.bar(index_x+w,cnbodfgbsort.PRICE,width=w)plt.bar(index_x+2*w,cnbodfgbsort.points,width=w)plt.show()

Python+matplotlib如何绘制堆叠图

二、波浪形堆叠图

labels=['战争','爱情','动画','动作','惊悚','剧情']colors=['tan','violet','turquoise','tomato','teal','steelblue']plt.stackplot(cnbodfgbsort.index,cnbodfgbsort.PRICE,cnbodfgbsort.PERSONS,cnbodfgbsort.points,labels=labels,colors=colors)

Python+matplotlib如何绘制堆叠图

labels=['战争','爱情','动画','动作','惊悚','剧情']colors=['tan','violet','turquoise','tomato','teal','steelblue']plt.stackplot(cnbodfgbsort.index,cnbodfgbsort.PRICE,cnbodfgbsort.BO/900,cnbodfgbsort.PERSONS,cnbodfgbsort.points,labels=labels,colors=colors)

Python+matplotlib如何绘制堆叠图

三、加上数据标签

plt.legend()
labels=['票房','票价','人次','评分']colors=['tan','violet','turquoise','tomato','teal','steelblue']plt.stackplot(cnbodfgbsort.index,cnbodfgbsort.PRICE,cnbodfgbsort.BO/900,cnbodfgbsort.PERSONS,cnbodfgbsort.points,labels=labels,colors=colors)plt.legend()

Python+matplotlib如何绘制堆叠图

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Python+matplotlib如何绘制堆叠图的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:linux shell中pushd、popd和dirs的使用示例下一篇:

18 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18