3 回答

TA貢獻1835條經驗 獲得超7個贊
您要求的東西不存在于為 e_tooltip 傳遞的參數中。您可以通過傳遞params到console.log并在瀏覽器中檢查此日志來訪問它們:
mtcars %>%
rownames_to_column("model") %>%
e_charts(mpg) %>%
e_y_axis(drat) %>%
e_scatter(drat, symbol_size = 15, bind = model, scale = NULL) %>%
e_tooltip(formatter = htmlwidgets::JS("
function(params){
var obj_str = JSON.stringify(params);
console.log(obj_str);
return('<strong>' + params.name +
'</strong><br />' + params.seriesName + ': ' + params.value[0] +
'<br />mpg: ' + params.value[1]
)}
"))
您會注意到 x 軸名稱在下方params.seriesName,但未找到 y 軸名稱。
這是您檢查console.logfor時會發現的示例params:
{"componentType":"series",
"componentSubType":"scatter",
"componentIndex":0,
"seriesType":"scatter",
"seriesIndex":0,
"seriesId":"\u0000drat\u00000",
"seriesName":"drat",
"name":"Ford Pantera L",
"dataIndex":9,
"data":{"value":[15.8,4.22],
"name":"Ford Pantera L"},
"value":[15.8,4.22],
"color":"#c23531",
"dimensionNames":["x","y"],
"encode":{"x":[0],"y":[1]},
"marker":"<span style=\"display:inline-block;
margin-right:5px;
border-radius:10px;
width:10px;height:10px;
background-color:#c23531;\"></span>",
"$vars":["seriesName","name","value"]
}
在這種情況下,paste0下面@Edo 的做法似乎很合理。

TA貢獻1868條經驗 獲得超4個贊
我試圖了解我是否在做你可能真正需要的東西......我想你想要靈活名稱的原因是讓它有一個單獨的功能,以便在你需要時給你打電話......
那么這個怎么樣?它使用一種變通方法來避免名稱(在您將字符串而不是未加引號的名稱傳遞給函數的意義上)。但是,如果您需要使用名稱,我們可以嘗試其他方法。
library(echarts4r)
library(tibble)
plot_escatter <- function(df, x_axis, y_axis, bind){
df %>%
e_charts_ (x_axis) %>%
e_y_axis_ (y_axis) %>%
e_scatter_(y_axis, symbol_size = 15, bind = bind, scale = NULL) %>%
e_tooltip(formatter = htmlwidgets::JS(paste0("
function(params){
return('<strong>' + params.name + '</strong><br />", x_axis, ": ' + params.value[0] +
'<br />", y_axis, ": ' + params.value[1]
)}
")))
}
mtcars %>%
rownames_to_column("model") %>%
plot_escatter("mpg", "drat", "model")

TA貢獻1773條經驗 獲得超3個贊
請找到下面的代碼:
您需要使用params.seriesName來訪問列名
mtcars %>%
tibble::rownames_to_column("model") %>%
e_charts(wt) %>%
e_scatter(mpg, qsec, bind = model, scale = NULL) %>%
e_tooltip(formatter = htmlwidgets::JS("
function(params){
return('<strong>' + params.seriesName +
'</strong><br />wt: ' + params.value[0] +
'<br />mpg: ' + params.value[1] + '<br> qsec:' + params.value[2]
)}
"))
添加回答
舉報