Python绘制堆叠柱状图的实例

作者:程序小学生 时间:2022-01-04 06:14:55 

有个朋友要求帮忙绘制堆叠柱状图,查阅了一些文档之后也算是完成了,只是一个小demo,下面我就记录一下。

1.什么是堆叠柱状图

与并排显示分类的分组柱状图不同,堆叠柱状图将每个柱子进行分割以显示相同类型下各个数据的大小情况。它可以形象的展示一个大分类包含的每个小分类的数据,以及各个小分类的占比,显示的是单个项目与整体之间的关系。效果图如下:

Python绘制堆叠柱状图的实例

2.数据展示

Python绘制堆叠柱状图的实例

这里展示了部分数据,主要是treatment就是对应的上图分类一,分类二;species就是对应的分组;ra就是对应的各个分组的比例。

3.Python代码


from matplotlib import pyplot as plt
import pandas as pd
import xlrd
import numpy as np

data = xlrd.open_workbook('ccc.xlsx')  #打开数据
table = data.sheet_by_index(0)     #获取sheet1的数据
nrows = table.nrows           #获取sheet1中的行
plot_list = ['plot1']
plot1_ra_list = [[0] for i in range(17)]#构建一个17X1的列表
i = 0
for row in range(1,nrows):       #循环读取表内数据
 if table.cell(row,0).value == 2015.0 and table.cell(row,1).value == 'plot1':
   print(table.cell(row, 3).value) #第三列是各个元素所占的比例
   print(i)
   plot1_ra_list[i][0]=(float(table.cell(row, 3).value))
   i+=1
#颜色列表
color = ['y','r','snow','b','k','g','orange','c','bisque','brown','lime','aqua','coral','darkcyan','gold','teal','pink',]
plt.figure(figsize=(8,6))
for i in range(17):
 plt.bar(range(len(plot1_ra_list[i])), plot1_ra_list[i],bottom=np.sum(plot1_ra_list[:i],axis = 0),label=str(i+1),tick_label = plot_list,fc = color[i])
plt.legend()
plt.show()

4.效果展示

上述代码我只做了2015年的plot1,如果要把plot2增加上注意要对齐plot1和plot2的species数量,可以认为的添加,并补充对应的ra为0,这样子也不影响整个做图。下面我PO一张demo。

Python绘制堆叠柱状图的实例

来源:https://blog.csdn.net/qq_25174673/article/details/85126457

标签:Python,堆叠,柱状图
0
投稿

猜你喜欢

  • Mac 安装 Python3.10 和 配置环境的详细教程

    2021-09-20 08:47:54
  • mpvue跳转页面及注意事项

    2024-05-02 16:09:57
  • 如何通过python计算圆周率PI

    2021-01-24 10:29:25
  • Python字典高级用法深入分析讲解

    2022-10-31 06:43:20
  • 浅谈PHP错误类型及屏蔽方法

    2023-11-23 10:26:46
  • 基于JavaScript实现单选框下拉菜单添加文件效果

    2023-07-15 08:46:33
  • Python基于随机采样一至性实现拟合椭圆(优化版)

    2021-10-19 15:08:36
  • vue动态添加store、路由和国际化配置方式

    2024-05-05 09:10:09
  • mysql双向加密解密方式用法详解

    2024-01-15 05:55:02
  • Python用类实现扑克牌发牌的示例代码

    2021-01-07 10:07:07
  • 浅谈MySQL之select优化方案

    2024-01-27 03:32:38
  • 标签水平右对齐更适合中文网站

    2009-05-01 11:54:00
  • Pytest测试框架基本使用方法详解

    2022-06-23 20:49:04
  • appium+python adb常用命令分享

    2022-12-27 09:16:24
  • Mysql语法、特殊符号及正则表达式的使用详解

    2024-01-12 21:56:50
  • element中form组件prop嵌套属性的问题解决

    2023-07-02 16:49:18
  • explain命令为什么可能会修改MySQL数据

    2024-01-19 14:53:49
  • Python实现读取TXT文件数据并存进内置数据库SQLite3的方法

    2021-03-01 14:14:27
  • Python 利用OpenCV给照片换底色的示例代码

    2021-08-25 17:34:35
  • Python深度学习实战PyQt5菜单和工具栏功能作用

    2021-04-04 16:09:40
  • asp之家 网络编程 m.aspxhome.com