You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana:如何将数据表每行数据分别绘制成独立线性图表

实现每行数据生成独立线性图表的方案

现状与需求

从Redis获取的数据表包含from、value_from、to、value_to四列(共3行数据);当前是将所有行的from+value_from、to+value_to分别汇总成两个图表。需要调整为每行数据单独生成一个仅包含该行value_from和value_to两个数据点的线性图表(共生成3个图表)。


1. 数据转换逻辑

核心是把单条原始记录拆分成包含两个数据点的结构,每个数据点对应一个y值,同时搭配明确的x轴标识:

  • 原始行结构:{from: 起始值, value_from: 起始对应数值, to: 结束值, value_to: 结束对应数值}
  • 转换后单行列对应绘图数据:[{x标识: "from", y值: value_from}, {x标识: "to", y值: value_to}]

2. 代码实现示例(Python + Matplotlib)

假设已从Redis取出的数据存储在列表redis_data中,直接按行遍历生成图表:

import matplotlib.pyplot as plt

# 模拟从Redis获取的3行数据
redis_data = [
    {"from": 1, "value_from": 2, "to": 3, "value_to": 4},
    {"from": 2, "value_from": 3, "to": 4, "value_to": 5},
    {"from": 3, "value_from": 4, "to": 5, "value_to": 6}
]

# 遍历每行生成独立图表
for chart_idx, row_data in enumerate(redis_data, start=1):
    # 准备绘图用的x标签和y数值
    x_ticks = ["from", "to"]
    y_values = [row_data["value_from"], row_data["value_to"]]
    
    # 创建独立画布
    plt.figure(figsize=(4, 3))
    # 绘制线性图,标记两个数据点
    plt.plot(x_ticks, y_values, marker='o', linestyle='-', color='#1f77b4')
    # 设置图表标题和标签
    plt.title(f"线性图表 {chart_idx}")
    plt.ylabel("数值")
    plt.grid(True, alpha=0.3)
    
    # 显示图表(若要保存替换为plt.savefig(f"chart_{chart_idx}.png"))
    plt.show()

3. 灵活调整说明

  • 如果需要用原始from和to的数值作为x轴坐标,只需把x_ticks替换为[row_data["from"], row_data["to"]]即可
  • 其他可视化工具(如Plotly、Seaborn)的实现逻辑一致:按行拆分数据,为每行单独创建图表并绘制两个数据点的连线

内容的提问来源于stack exchange,提问作者PingFloyd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:41:04