如何移除Kusto折线图中多余的连接线?
解决KQL折线图多余线条问题
问题原因
你的查询执行union后,Room1和Room4两个Place各有两条记录,分别对应String字段的两个不同值("Hello Rithwik"和"Winner")。启用series=String后,这两个值会被作为独立的折线系列绘制,而你隐藏了图例,所以看不到是两条不同的线,误以为是多余的线条。
解决方案
方案一:聚合去重(推荐)
通过summarize对相同Place的记录做聚合,消除重复的系列:
let data = datatable(Place:string, Date:string, Stage_Num:int, String:string) [ "Room1", "1/30/23", 3, "Winner", "Room4", "2/4/23", 3, "Winner", ]; let mytable = datatable(Place:string, Date:string, Stage_Num:int) [ "Room1", "1/30/23", 3, "Room2", "2/1/23", 1, "Room3", "2/3/23", 2, "Room4", "2/4/23", 3, ] ; mytable | project Place, Date, Stage_Num, String = "Hello Rithwik" | union (data) | project Place, Date, Stage_Num, String // 聚合相同Place的记录,这里Stage_Num值相同,取max/first均可 | summarize Stage_Num = max(Stage_Num) by Place, Date | order by Date asc | render linechart with ( legend = hidden, ymin=0, ymax=5, xcolumn=Place, xaxis=linear, ycolumns=Stage_Num, ytitle="Stage", xtitle="Place" ) ;
方案二:过滤多余系列
如果你只需要保留其中一个String系列,可以添加过滤条件:
let data = datatable(Place:string, Date:string, Stage_Num:int, String:string) [ "Room1", "1/30/23", 3, "Winner", "Room4", "2/4/23", 3, "Winner", ]; let mytable = datatable(Place:string, Date:string, Stage_Num:int) [ "Room1", "1/30/23", 3, "Room2", "2/1/23", 1, "Room3", "2/3/23", 2, "Room4", "2/4/23", 3, ] ; mytable | project Place, Date, Stage_Num, String = "Hello Rithwik" | union (data) | project Place, Date, Stage_Num, String // 只保留需要的系列,这里示例保留"Hello Rithwik" | where String == "Hello Rithwik" | order by Date asc | render linechart with ( legend = hidden, ymin=0, ymax=5, xcolumn=Place, xaxis=linear, ycolumns=Stage_Num, ytitle="Stage", xtitle="Place", series=String ) ;
补充说明
如果你的业务逻辑中,同一个Place确实需要区分不同String的Stage_Num,那可以保留series=String并取消图例隐藏,这样就能清晰看到两个系列的区别,避免误以为是多余线条。
内容的提问来源于stack exchange,提问作者chocalaca
相关产品推荐
相关产品推荐

