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

如何在Kusto折线图中显示Y轴全范围的每条参考线及对应数值

如何在Kusto折线图中显示Y轴全范围的每条参考线及对应数值

嗨,我来帮你搞定这个Kusto折线图的需求~ 你想要在折线图上为Y轴的每个刻度值都加上水平参考线,同时显示对应的数值,对吧?

先理下思路:Kusto原生的render linechart没有直接一键添加所有Y轴刻度参考线的参数,但我们可以通过构造参考线数据集+合并原始数据的方式来实现这个效果,下面是具体的解决方案:

需求效果对比

  • 当前折线图效果:仅展示业务折线,Y轴有刻度但无对应水平参考线和数值标注
  • 期望效果:折线图上覆盖Y轴每个刻度的水平参考线,每条线上还标注了对应的数值

修改后的KQL查询代码

// 第一步:获取你的原始业务数据
let my_data = myquery
| order by Date asc;

// 第二步:动态生成Y轴需要的所有参考线数值(自动适配数据的Y轴范围)
let y_range = my_data | summarize y_min = min(Stage_Num), y_max = max(Stage_Num);
let y_values = range(y_range.y_min, y_range.y_max, 1);

// 第三步:生成参考线数据集——为每个Y值创建贯穿所有X轴(Place)的水平线
let reference_lines = my_data
| summarize min_Place = min(Place), max_Place = max(Place)
| mv-expand Stage_Num = y_values to typeof(int)
| extend Place = range(min_Place, max_Place, 1)
| mv-expand Place to typeof(int)
| extend is_reference = 1, Value_Label = strcat(Stage_Num);

// 第四步:合并原始数据和参考线数据,渲染图表
my_data
| extend is_reference = 0
| union reference_lines
| render linechart with (
    legend = hidden, title = "myracer",
    xcolumn=Place, xaxis=linear, xtitle="Location",
    ycolumns=Stage_Num, ytitle="Stage",
    series=is_reference, // 区分业务折线和参考线系列
    linewidth=2, // 业务折线的宽度
    linestyle="solid,dashed", // 业务线用实线,参考线用虚线
    datalabels=Value_Label // 在参考线上显示对应的Y轴数值
)

代码逻辑解释

  1. 原始数据部分:my_data就是你原来的查询逻辑,保持不变即可。
  2. 动态Y轴范围:通过y_range自动获取数据中Stage_Num的最小和最大值,生成所有需要添加参考线的Y值,不用手动写死范围。
  3. 参考线数据构造:reference_lines为每个Y值生成覆盖所有Place(X轴)的点,这样渲染出来就是一条完整的水平线。
  4. 合并与渲染:用union把原始数据和参考线数据合并,通过is_reference字段区分两个系列,分别设置线条样式,最后用datalabels显示数值标签。

额外优化提示

  • 如果你的Y轴不是整数(比如有小数刻度),可以调整range的步长(比如把1改成0.5)。
  • 要是想让数值标签更醒目,可以尝试添加datalabelsfontsize=12这类参数(不同Kusto版本支持度可能略有差异)。

备注:内容来源于stack exchange,提问作者chocalaca

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 09:49:34