如何按行绘制多图表?基于指定数据集生成产品柱状图需求
实现按产品生成独立柱状图的方案
嘿,我来帮你搞定这个按产品生成独立柱状图的需求~我用Python里常用的matplotlib库来实现,代码简单好懂,完全匹配你的要求:
步骤1:准备数据
先把你的数据集整理成直观的结构:
import matplotlib.pyplot as plt import numpy as np # 你的原始数据 product_data = [ {"name": "Books", "buy": 1111, "sold": 2222, "profit": 1111}, {"name": "Pens", "buy": 2222, "sold": 4444, "profit": 2222} ] bar_width = 0.25 # 柱子的宽度
步骤2:逐个生成产品的专属图表
我们遍历每个产品,为它单独绘制一个柱状图,确保每个图的X轴是产品名,Y轴展示三个指标的数值:
for product in product_data: # 创建新的图表窗口 plt.figure(figsize=(6, 5)) # 设置X轴的位置(只有一个位置,对应产品名) x = np.array([0]) # 绘制三个指标的柱子 plt.bar(x - bar_width, product["buy"], width=bar_width, color="#1f77b4", label="Buy") plt.bar(x, product["sold"], width=bar_width, color="#ff7f0e", label="Sold") plt.bar(x + bar_width, product["profit"], width=bar_width, color="#2ca02c", label="Profit") # 配置图表细节 plt.title(f"Performance of {product['name']}", fontsize=14, pad=15) plt.xticks(x, [product["name"]], fontsize=12) # X轴显示产品名 plt.ylabel("Value", fontsize=12) plt.legend(loc="upper right") # 显示图例 plt.grid(axis='y', linestyle='--', alpha=0.7) # 加Y轴网格线,更易读 # 自动调整布局,避免标签被截断 plt.tight_layout() # 如果你需要保存图片,取消下面这行注释 # plt.savefig(f"{product['name']}_performance.png", dpi=100) plt.show()
效果说明
运行代码后会弹出两个独立的图表:
- 第一个图表:X轴仅显示
Books,三个并排的柱子分别对应Buy(1111)、Sold(2222)、Profit(1111)的数值,清晰展示该产品的各项数据。 - 第二个图表:X轴仅显示
Pens,同样用三个柱子展示Buy(2222)、Sold(4444)、Profit(2222)的数值,布局和第一个保持一致,便于对比。
如果你用的是其他可视化工具(比如Excel),思路也是一样的:每个产品单独建一个图表,把三个指标作为系列,X轴固定为产品名即可~
内容的提问来源于stack exchange,提问作者aysh
相关产品推荐
相关产品推荐

