如何在Grafana中基于InfluxDB实现非时间轴F1平均完赛时间图表?
Grafana展示F1赛事平均完赛时间图表实现提示
选对图表类型:优先用条形图或柱状图,这类分类图表最适合展示“赛道名称(分类)-平均完赛时间(数值)”的对应关系,条形图能更好适配长赛道名称的显示。
调整InfluxDB查询:
确保查询按赛道名称分组计算平均值,保留race_name作为分组标签,示例如下:- InfluxQL写法:
SELECT MEAN(finish_time) AS avg_finish_time FROM f1_races GROUP BY race_name - Flux写法:
from(bucket: "f1_data") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r._measurement == "f1_races" and r._field == "finish_time") |> group(columns: ["race_name"]) |> mean() |> rename(columns: {_value: "avg_finish_time"})
- InfluxQL写法:
配置图表轴参数:
进入面板的Panel settings->Axes:- X轴:设置类型为Category,选择
race_name作为分类字段;如果赛道名称过长,开启Rotate labels调整标签角度,避免重叠。 - Y轴:绑定
avg_finish_time字段,根据数据格式设置单位(比如秒、分钟),确保数值显示直观。
- X轴:设置类型为Category,选择
优化展示细节:
- 关闭不必要的图例,直接通过X轴标签识别对应赛道;
- 可自定义柱子颜色,区分不同赛事;
- 可选配置
Data links,点击赛道名称跳转至该赛事的详细车手完赛数据面板。
内容的提问来源于stack exchange,提问作者Cutton Eye
相关产品推荐
相关产品推荐

