Matplotlib柱状图
Matplotlib是一个用于绘制数据图形的Python库。其中的matplotlib.pyplot
模块提供了许多函数来绘制各种类型的图表,包括柱状图。柱状图是一种常用的图表类型,用于展示不同类别之间的数量关系。在本篇文章中,我们将深入探讨如何使用Matplotlib创建柱状图。
创建简单的柱状图
首先,让我们来创建一个简单的柱状图。我们将使用bar
函数来绘制柱状图,并使用show
函数来显示图形。
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 创建柱状图
plt.bar(x, y)
# 显示图形
plt.show()
Output:
运行以上代码,你将会看到一个简单的柱状图,横坐标为A、B、C、D,纵坐标为对应的数值。
设置柱状图的样式
你可以通过设置不同的参数来调整柱状图的样式,比如颜色、宽度等。下面我们来展示一些示例代码。
设置柱体颜色
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 设置柱体颜色为红色
plt.bar(x, y, color='red')
plt.show()
Output:
设置柱体宽度
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 设置柱体宽度为0.5
plt.bar(x, y, width=0.5)
plt.show()
Output:
设置边框颜色
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 设置柱体边框颜色为蓝色
plt.bar(x, y, edgecolor='blue')
plt.show()
Output:
设置柱体透明度
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 设置柱体透明度为0.5
plt.bar(x, y, alpha=0.5)
plt.show()
Output:
设置柱体标签
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 设置柱体标签
plt.bar(x, y)
for i, v in enumerate(y):
plt.text(i, v + 1, str(v), ha='center')
plt.show()
Output:
组合柱状图
除了简单的柱状图之外,我们还可以将多个数据集组合在一起展示,比如并列柱状图和堆叠柱状图。
并列柱状图
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 数据
y1 = [10, 20, 15, 25]
y2 = [15, 25, 20, 30]
# 创建并列柱状图
plt.bar(x, y1, label='Group 1')
plt.bar(x, y2, label='Group 2', alpha=0.7)
# 设置图例
plt.legend()
plt.show()
Output:
堆叠柱状图
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 数据
y1 = [10, 20, 15, 25]
y2 = [15, 25, 20, 30]
# 创建堆叠柱状图
plt.bar(x, y1, label='Group 1')
plt.bar(x, y2, bottom=y1, label='Group 2')
# 设置图例
plt.legend()
plt.show()
Output:
自定义柱状图
Matplotlib提供了丰富的自定义选项,让你可以根据自己的需求来调整图表样式。
添加标题和轴标签
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 添加标题和轴标签
plt.bar(x, y)
plt.title('Sample Bar Plot')
plt.xlabel('Category')
plt.ylabel('Value')
plt.show()
Output:
设置坐标范围
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 设置坐标范围
plt.bar(x, y)
plt.xlim(-1, 4)
plt.ylim(0, 30)
plt.show()
Output:
添加网格线
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 添加网格线
plt.bar(x, y)
plt.grid(axis='y', linestyle='--')
plt.show()
Output:
修改轴刻度
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 修改轴刻度
plt.bar(x, y)
plt.xticks(rotation=45)
plt.yticks([0, 10, 20, 30])
plt.show()
Output:
自定义颜色映射
import matplotlib.pyplot as plt
# 数据
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
# 自定义颜色映射
colors = ['red', 'blue', 'green', 'orange']
plt.bar(x, y, color=colors)
plt.show()
Output: