如何基于1行2列数组构成的列表绘制x、y值并列的分组柱状图
实现方案(基于Python Matplotlib)
你可以通过Matplotlib的柱状图偏移逻辑实现需求,以下是完整实现步骤和可运行代码:
核心思路
- 先把输入的数组列表拆分为独立的x值集合、y值集合
- 设置单根柱子的宽度,给两组柱子设置错开的横向坐标,实现并排效果
- 分别为两组柱子指定统一的填充色,最后补充坐标轴、图例等标注即可
完整可运行代码
import numpy as np import matplotlib.pyplot as plt # 你的输入数据示例 data_list = [np.array([1.3, 4.5]), np.array([1.4, 6.8]), np.array([2.5, 2.88])] # 拆分两组数值 x_values = [item[0] for item in data_list] y_values = [item[1] for item in data_list] group_count = len(data_list) bar_width = 0.35 # 可按需调整柱子宽度 x_loc = np.arange(group_count) # 第一组(x值)柱子的基准坐标 # 绘制两组柱状图 plt.bar(x_loc, x_values, width=bar_width, label='x值', color='#2E86AB') plt.bar(x_loc + bar_width, y_values, width=bar_width, label='y值', color='#F24C4C') # 调整坐标轴与标注 plt.xticks(x_loc + bar_width/2, [f"第{i+1}组" for i in range(group_count)]) plt.xlabel("数组分组") plt.ylabel("数值大小") plt.legend() # 显示图像 plt.show()
自定义调整说明
- 如需修改柱子宽度,调整
bar_width参数即可 - 如需更换两组颜色,修改
plt.bar的color参数,支持十六进制色值、Matplotlib预设色名 - 如需修改分组名称,替换
plt.xticks的第二个参数的列表内容即可
内容的提问来源于stack exchange,提问作者Savannah
相关产品推荐
相关产品推荐

