说明
显示如下图:
关键
需要计算两组柱子的 x 坐标:
- 先定义
x坐标的初始值 - 然后让 第一组 柱子的
x坐标 左移 半个宽度 - 然后让 第二组 柱子的
x坐标 右移 半个宽度
移动半个宽度的目的
让 x 轴的 刻度 显示在 两个柱子的中间位置
代码
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = ['Microsoft YaHei']
# x 轴标签
labels = ['1月', '2月', '3月', '4月', '5月', '6月']
barwidth = 0.4 # 柱子宽度
# x轴的刻度
x = range(len(labels))
x1 = [] # 23年柱子的x坐标
x2 = [] # 24年柱子的x坐标
for item in x:
x1.append(item - barwidth/2) # 23年x坐标,左移半个宽度,目的是为了让x轴刻度显示在两个柱子的中间
x2.append(item + barwidth/2) # 24年x坐标,右移半个宽度,目的是为了让x轴刻度显示在两个柱子的中间
# 23年柱子高度
heights = [120, 200, 150, 80, 70, 110]
# 绘制23年柱子
plt.bar(x1, heights, width=barwidth, label="2023年")
# 24年柱子高度
heights = [180, 100, 350, 180, 170, 210]
# 绘制24年柱子
plt.bar(x2, heights, width=barwidth, label='2024年')
# 设置x轴刻度标签
plt.xticks(x, labels=labels)
plt.title("2023-2024年上半年销量")
# 设置图例位置
plt.legend(loc='upper right')
# 显示窗口,必须写
plt.show()
