如何在echarts4r中修改markLine的tooltip内容且不影响其他元素
修改echarts4r标记线Tooltip内容(不影响原有系列)
需求说明
使用echarts4r::e_mark_line()绘制标记线时,默认会继承对应系列的名称作为Tooltip中的名称(比如示例中显示“y”),需要在不修改现有系列名称的前提下,单独修改标记线的Tooltip内容,同时保留图表其他元素的Tooltip不变。
原示例代码:
data.frame(x = c("a"), y = c(5)) |> echarts4r::e_charts(x = x) |> echarts4r::e_bar(serie = y) |> echarts4r::e_mark_line( data = list( yAxis = 3 ) ) |> echarts4r::e_tooltip()
默认效果:
解决方案
方法1:直接指定标记线自定义名称
在e_mark_line()的data参数中,给标记线对象添加name属性,即可替换Tooltip中显示的系列名称,原有柱状图的Tooltip不受影响。
修改后的代码:
data.frame(x = c("a"), y = c(5)) |> echarts4r::e_charts(x = x) |> echarts4r::e_bar(serie = y) |> echarts4r::e_mark_line( data = list( list( yAxis = 3, name = "自定义标记线" # 设置标记线的专属名称 ) ) ) |> echarts4r::e_tooltip()
方法2:自定义Tooltip完整格式
如果需要更精细地控制Tooltip的显示样式,可以通过e_tooltip()的formatter参数,用JS函数针对标记线单独处理,其他元素保留默认格式。
示例代码:
data.frame(x = c("a"), y = c(5)) |> echarts4r::e_charts(x = x) |> echarts4r::e_bar(serie = y) |> echarts4r::e_mark_line( data = list( list( yAxis = 3, name = "阈值线" ) ) ) |> echarts4r::e_tooltip( formatter = htmlwidgets::JS(" function(params) { // 单独处理标记线的Tooltip if(params.seriesName === '阈值线'){ return '<div>阈值提示:<br/>' + '数值:' + params.value + '</div>'; } // 其他元素沿用默认Tooltip格式 return params.name + '<br/>' + params.seriesName + ':' + params.value; } ") )
内容的提问来源于stack exchange,提问作者Giovanni Colitti
相关产品推荐
相关产品推荐

