Python使用Matplotlib绘制堆叠柱状图:基于Excel数据的实现

竹里
竹里
发布时间:2026-10-12| 5人浏览过
原创

本文介绍如何使用Python的Matplotlib库绘制堆叠柱状图,展示各分类占比及与整体的关系。通过读取Excel文件数据,利用循环和bottom参数实现柱状图的堆叠效果,并自定义颜色与图例。

堆叠柱状图的应用场景

堆叠柱状图是一种常用的数据可视化方式,它将柱子分割以显示各数据的大小,同时展示小分类占比及与整体的关系。在数据分析中,这种图表常用于展示不同类别下的子类别分布情况,例如不同治疗方式(treatment)在不同物种(species)中的比例(ra)。

数据准备与处理

在开始绘图之前,需要准备好数据。假设我们有一个Excel文件'ccc.xlsx',其中包含我们需要可视化的数据。以下是数据处理的步骤:

  1. 使用xlrd库打开Excel文件。
  2. 获取第一个工作表(sheet1)的数据。
  3. 读取表格中的行数。
  4. 筛选出特定年份(如2015年)和特定plot(如'plot1')的数据。
  5. 提取每个元素所占的比例(ra)。

绘制堆叠柱状图

接下来,我们将使用Matplotlib库来绘制堆叠柱状图。以下是具体的代码实现:

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()

代码解析

上述代码首先导入了必要的库,包括Matplotlib、pandas、xlrd和numpy。然后,它打开了Excel文件并获取了第一个工作表的数据。接下来,代码筛选出特定年份和plot的数据,并提取每个元素所占的比例。

在绘制堆叠柱状图时,代码使用了Matplotlib的bar函数。通过设置bottom参数,实现了柱状图的堆叠效果。同时,代码还自定义了颜色列表,并为每个柱子分配了相应的颜色。

注意事项

在绘制堆叠柱状图时,需要注意以下几点:

  • 确保数据格式正确,特别是比例(ra)的值。
  • 根据实际需求调整柱子的数量和颜色。
  • 如果需要绘制多个plot的堆叠柱状图,需要确保每个plot的species数量对齐。

以上就是Python绘制堆叠柱状图的详细内容,更多关于Python数据可视化的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。