如何在ECharts tooltip formatter中按分组提取Y轴数值
如何在echarts4r自定义tooltip格式化函数中获取分组Y轴数值
要获取每个分组对应的Y轴数值,只需将代码里的var groupValue = 1;替换为var groupValue = item.value;即可。在ECharts的tooltip格式化逻辑中,params数组内的每个item对象包含了对应系列点的完整数据,其中value属性就是该点的Y轴数值。
修改后的完整代码如下:
library(echarts4r) # Example data data <- data.frame( category = c("A", "B", "C", "D", "E"), value1 = c(10, 15, 20, 25, 30), value2 = c(12, 18, 22, 28, 35) ) # define formatter function formatter <- htmlwidgets::JS( " function(params) { var tooltipContent = '<b>Category:</b> ' + params[0].axisValue + '<br/>'; params.forEach(function(item) { var groupName = item.seriesName; var groupValue = item.value; // 此处获取对应分组的Y轴数值 var groupColor = item.color; tooltipContent += '<div style=\"display: inline-block; width: 10px; height: 10px; margin-right: 5px; background-color: ' + groupColor + '\"></div>' + '<b>' + groupName + ':</b> ' + groupValue + '<br/>'; }); return tooltipContent; } " ) # Create the echart data |> e_charts(category) |> e_line(value1, name = "Group 1") |> e_line(value2, name = "Group 2") |> e_y_axis(name = "Value") |> e_x_axis(name = "Category") |> e_tooltip(trigger = "axis", axisPointer = list(type = "cross"), formatter = formatter)
如果你的数据是多维度结构(每个点包含多个数值),可以通过item.value[index]指定获取对应位置的数值(比如item.value[1]),但在当前示例的单Y值场景下,直接使用item.value即可得到正确结果。
内容的提问来源于stack exchange,提问作者Giovanni Colitti
相关产品推荐
相关产品推荐

