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

Grafana XY散点图X轴字符串转数值方案咨询

解决Grafana XY散点图字符串X轴的问题

方法一:SQL查询层面转换(推荐)

直接在SQLite查询中用CASE语句将setting字符串映射为数值,同时保留原字符串用于标签显示:

SELECT
  performance,
  -- 将setting映射为对应数值
  CASE setting
    WHEN 'off' THEN 0
    WHEN 'idle' THEN 1
    WHEN 'standby' THEN 2
    WHEN 'on' THEN 3
  END AS setting_num,
  -- 保留原字符串用于后续标签展示
  setting
FROM your_table_name

在Grafana中:

  • XY散点图的X轴选择setting_num字段
  • 可通过轴选项的“自定义标签”,或在图例中使用setting字段,将数值对应回原字符串显示。

方法二:Grafana内部字段转换

若不想修改SQL查询,可通过Grafana的数据转换功能生成数值字段:

  1. 在查询结果页点击“转换”按钮,选择“添加字段从计算”
  2. 设置新字段名称(如setting_num),使用如下表达式将字符串转成数值:
ifElse(eq($datapoint.setting, 'off'), 0, ifElse(eq($datapoint.setting, 'idle'), 1, ifElse(eq($datapoint.setting, 'standby'), 2, 3)))
  1. 生成setting_num字段后,将其设为XY散点图的X轴即可。

另外,也可在字段设置中对setting字段添加值映射,将字符串映射为对应数值,再将字段类型切换为“数值”,同样能满足XY图的轴类型要求。

数据库存储优化方案

如果长期需要这类可视化需求,建议优化数据存储结构:

  • 新增setting_code列(整数类型),存储与setting对应的数值(0=off、1=idle、2=standby、3=on)
  • 插入数据时同时写入setting和setting_code,或通过触发器自动维护两者的映射关系
  • 查询时直接使用setting_code作为X轴字段,setting用于显示标签,减少查询计算开销的同时简化Grafana配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:12:11