python堆叠柱状图

python堆叠柱状图

python堆叠柱状图

引言

堆叠柱状图是一种常见的数据可视化方法,用于比较多个类别的不同变量在总体上的占比关系。通过在同一柱状图上堆叠不同类别的数据,可以直观地展示出每个类别相对于整体的大小和比例。本文将详细介绍如何使用Python生成堆叠柱状图,包括数据准备、绘图步骤和修改样式。

数据准备

在绘制堆叠柱状图之前,首先需要准备好要展示的数据。假设我们有一个销售报表,包含了不同产品在每个季度的销售额。数据格式如下所示:

季度 产品A 产品B 产品C
Q1 100 150 200
Q2 120 160 180
Q3 90 170 190
Q4 110 140 220

可以使用pandas库创建一个DataFrame对象来存储数据,并进行处理和分析。以下是使用pandas创建以上数据的示例代码:

import pandas as pd

data = {
    '季度': ['Q1', 'Q2', 'Q3', 'Q4'],
    '产品A': [100, 120, 90, 110],
    '产品B': [150, 160, 170, 140],
    '产品C': [200, 180, 190, 220]
}

df = pd.DataFrame(data)
print(df)
Python

运行结果:

  季度 产品A 产品B 产品C
0  Q1  100  150  200
1  Q2  120  160  180
2  Q3   90  170  190
3  Q4  110  140  220
Python

绘制堆叠柱状图

步骤1: 导入必要的库

在绘制堆叠柱状图之前,需要导入matplotlib库以及选择所需的绘图样式。以下是导入必要库的示例代码:

import matplotlib.pyplot as plt
import numpy as np
Python

步骤2: 创建堆叠柱状图

接下来,我们使用matplotlib库中的bar函数来创建堆叠柱状图。bar函数接受一些参数来设置柱状图的相关属性。以下是创建堆叠柱状图的示例代码:

# 设置柱状图的名称
labels = df['季度']

# 设置每个柱状图堆叠的数据
data_a = df['产品A']
data_b = df['产品B']
data_c = df['产品C']

# 设置柱状图的位置和宽度
position = np.arange(len(labels))
width = 0.35

# 绘制堆叠柱状图
plt.bar(position, data_a, width, label='产品A')
plt.bar(position, data_b, width, bottom=data_a, label='产品B')
plt.bar(position, data_c, width, bottom=data_a+data_b, label='产品C')

# 添加图例
plt.legend()

# 添加横轴标签和标题
plt.xlabel('季度')
plt.ylabel('销售额')
plt.title('产品销售额季度堆叠柱状图')

# 展示图形
plt.show()
Python

修改样式

为了使堆叠柱状图更加美观和具有可读性,我们可以修改其样式。下面我们演示几个常用的样式修改方法。

修改颜色

可以通过设置color参数来修改柱状图的颜色。以下是修改颜色的示例代码:

plt.bar(position, data_a, width, label='产品A', color='r')
plt.bar(position, data_b, width, bottom=data_a, label='产品B', color='g')
plt.bar(position, data_c, width, bottom=data_a+data_b, label='产品C', color='b')
Python

修改边框

bar函数的edgecolor参数可以用来设置柱状图的边框颜色。以下是修改边框颜色的示例代码:

plt.bar(position, data_a, width, label='产品A', edgecolor='black')
plt.bar(position, data_b, width, bottom=data_a, label='产品B', edgecolor='black')
plt.bar(position, data_c, width, bottom=data_a+data_b, label='产品C', edgecolor='black')
Python

修改图例

可以使用legend函数来修改图例的位置、大小和样式。以下是修改图例的示例代码:

plt.legend(loc='upper left', fontsize='small', fancybox=True, shadow=True)
Python

结论

堆叠柱状图是一种非常直观的数据可视化方法,能够清晰地表达不同类别在总体上的占比关系。通过matplotlib库,我们可以方便地生成堆叠柱状图,并且可以灵活地修改样式以满足实际需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册