matplotlib柱状图(条形图)-显示两组柱状图 作者:马育民 • 2024-11-12 11:24 • 阅读:10005 # 说明 显示如下图: [![](/upload/0/0/1GW1gsj6e5s.png)](/upload/0/0/1GW1gsj6e5s.png) ## 关键 需要计算两组柱子的 `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() ``` 原文出处:http://malaoshi.top/show_1GW1gxD8Ox2.html