echarts4r极坐标柱状图tooltip无法显示第三个数据字段z的解决方法
解决echarts4r极坐标柱状图tooltip显示z值为undefined的问题
你遇到的问题根源是:默认情况下e_bar(y)仅将x和y字段传入ECharts的系列数据中,z字段未被包含,因此params.data.z会返回undefined。以下是两种可行的解决方法:
方案一:通过customData传递额外字段
在e_bar函数中使用customData参数传入z字段,然后在tooltip格式化函数中通过params.customData获取该值:
library(echarts4r) # 创建示例数据集 df <- data.frame(x = c("A", "B", "C"), y = c(10, 20, 30), z = c("foo", "bar", "baz")) # 创建极坐标柱状图 df %>% e_charts(x) %>% # 添加customData参数传入z字段 e_bar(y, coord_system = "polar", customData = df$z) %>% e_angle_axis(startAngle = 90, max = 150, axisLine = list(show = FALSE), axisTick = list(show = FALSE), splitLine = list(show = FALSE), axisLabel = list(show = FALSE)) %>% e_radius_axis(type = "category", data = df$x, axisLabel = list(interval =0,margin = 50, fontSize= 15, color = 'black'), axisLine = list(show = FALSE), axisTick = list(show = FALSE), z = 10) %>% e_polar() %>% e_legend(show = FALSE) %>% e_tooltip(formatter = htmlwidgets::JS(" function(params) { return params.name + '<br>' + params.value + '<br>' + params.customData; } "))
方案二:使用aes映射所有字段
通过aes同时映射x、y、z三个字段,让ECharts系列数据包含z字段,即可直接通过params.data.z获取值:
library(echarts4r) # 创建示例数据集 df <- data.frame(x = c("A", "B", "C"), y = c(10, 20, 30), z = c("foo", "bar", "baz")) # 创建极坐标柱状图 df %>% e_charts() %>% # 使用aes映射x、y、z三个字段 e_bar(aes(x = x, y = y, z = z), coord_system = "polar") %>% e_angle_axis(startAngle = 90, max = 150, axisLine = list(show = FALSE), axisTick = list(show = FALSE), splitLine = list(show = FALSE), axisLabel = list(show = FALSE)) %>% e_radius_axis(type = "category", data = df$x, axisLabel = list(interval =0,margin = 50, fontSize= 15, color = 'black'), axisLine = list(show = FALSE), axisTick = list(show = FALSE), z = 10) %>% e_polar() %>% e_legend(show = FALSE) %>% e_tooltip(formatter = htmlwidgets::JS(" function(params) { return params.name + '<br>' + params.value + '<br>' + params.data.z; } "))
内容的提问来源于stack exchange,提问作者akshay bholee
相关产品推荐
相关产品推荐

