Matplotlib 柱状图详解

Matplotlib 柱状图详解

参考:matplotlib bar graphs

Matplotlib 是一个用于在 Python 中创建数据可视化的库。它提供了一个非常强大的接口来绘制各种图表,包括但不限于线图、散点图、柱状图等。本文将重点介绍如何使用 Matplotlib 绘制柱状图,包括基本柱状图、堆叠柱状图、分组柱状图等,并提供详细的示例代码。

基本柱状图

柱状图是数据可视化中最常见的图表类型之一,它通过柱子的高度来表示数据的大小。下面是一个基本柱状图的示例代码:

import matplotlib.pyplot as plt

data = [23, 45, 56, 78, 33]
labels = ['A', 'B', 'C', 'D', 'E']

plt.bar(labels, data, color='blue', label='Demo Data')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Basic Bar Graph - how2matplotlib.com')
plt.legend()
plt.show()

Output:

Matplotlib 柱状图详解

水平柱状图

除了传统的垂直柱状图,Matplotlib 也支持绘制水平柱状图。下面是一个水平柱状图的示例代码:

import matplotlib.pyplot as plt

data = [23, 45, 56, 78, 33]
labels = ['A', 'B', 'C', 'D', 'E']

plt.barh(labels, data, color='green', label='Demo Data')
plt.ylabel('Categories')
plt.xlabel('Values')
plt.title('Horizontal Bar Graph - how2matplotlib.com')
plt.legend()
plt.show()

Output:

Matplotlib 柱状图详解

堆叠柱状图

堆叠柱状图可以显示多个数据系列的组合,下面是一个堆叠柱状图的示例代码:

import matplotlib.pyplot as plt

labels = ['A', 'B', 'C', 'D', 'E']
data1 = [23, 45, 56, 78, 33]
data2 = [17, 22, 19, 18, 29]

plt.bar(labels, data1, color='blue', label='Data 1')
plt.bar(labels, data2, bottom=data1, color='red', label='Data 2')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Stacked Bar Graph - how2matplotlib.com')
plt.legend()
plt.show()

Output:

Matplotlib 柱状图详解

分组柱状图

分组柱状图可以在同一个图表中并排显示多个数据系列,下面是一个分组柱状图的示例代码:

import matplotlib.pyplot as plt
import numpy as np

labels = ['A', 'B', 'C', 'D', 'E']
data1 = [23, 45, 56, 78, 33]
data2 = [17, 22, 19, 18, 29]

x = np.arange(len(labels))  # 标签位置
width = 0.35  # 柱状图的宽度

plt.bar(x - width/2, data1, width, color='blue', label='Data 1')
plt.bar(x + width/2, data2, width, color='red', label='Data 2')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Grouped Bar Graph - how2matplotlib.com')
plt.xticks(x, labels)
plt.legend()
plt.show()

Output:

Matplotlib 柱状图详解

自定义柱状图样式

Matplotlib 允许自定义柱状图的样式,包括颜色、边框、透明度等。下面是一个自定义样式的柱状图示例代码:

import matplotlib.pyplot as plt

data = [23, 45, 56, 78, 33]
labels = ['A', 'B', 'C', 'D', 'E']

plt.bar(labels, data, color='skyblue', edgecolor='black', linewidth=1.5, alpha=0.7, label='Demo Data')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Custom Style Bar Graph - how2matplotlib.com')
plt.legend()
plt.show()

Output:

Matplotlib 柱状图详解

添加文本标签

在柱状图的每个柱子上添加文本标签可以更直观地显示数据值,下面是一个添加文本标签的柱状图示例代码:

import matplotlib.pyplot as plt

data = [23, 45, 56, 78, 33]
labels = ['A', 'B', 'C', 'D', 'E']

plt.bar(labels, data, color='purple', label='Demo Data')

for i, value in enumerate(data):
    plt.text(i, value + 1, str(value), ha='center')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Bar Graph with Labels - how2matplotlib.com')
plt.legend()
plt.show()

Output:

Matplotlib 柱状图详解

多系列柱状图

在同一个图表中绘制多个数据系列的柱状图,可以更好地比较不同系列之间的数据。下面是一个多系列柱状图的示例代码:

import matplotlib.pyplot as plt

data1 = [23, 45, 56, 78, 33]
data2 = [17, 22, 19, 18, 29]
labels = ['A', 'B', 'C', 'D', 'E']

plt.bar(labels, data1, color='blue', width=0.4, label='Data 1')
plt.bar(labels, data2, color='red', width=0.4, bottom=data1, label='Data 2')

plt.xlabel('Categories')
plt.ylabel('Values')
plt.title('Multiple Series Bar Graph - how2matplotlib.com')
plt.legend()
plt.show()

Output:

Matplotlib 柱状图详解

结论

Matplotlib 提供了强大的柱状图绘制功能,通过上述示例代码,我们可以看到绘制基本柱状图、水平柱状图、堆叠柱状图、分组柱状图以及自定义样式柱状图等都是非常直观和简单的。通过合理利用柱状图,可以有效地展示和比较数据,为数据分析和决策提供支持。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程