Отображение дополнительных переменных в подсказках echarts4r - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь создать график с дополнительными переменными во всплывающих подсказках, но не могу понять, как это сделать.
Например, я хочу отобразить qsec, cyl и hp столбцы
Учебник из API мне не помог
Пример:

library(dplyr)
library(echarts4r)
mtcars %>%  
  tibble::rownames_to_column("model") %>% 
  e_charts(wt) %>% 
  e_scatter(mpg,bind=model) %>%
  e_tooltip(formatter = htmlwidgets::JS("
                                        function(params){
                                        return('<strong>' + params.name + 
                                        '</strong><br />wt: ' + params.value[0] + 
                                        '<br />mpg: ' +  params.value[1] +
                                        '<br />qsec: ' +  this.qsec )   }  "))

ожидаемый результат примерно так:
https://github.com/jbkunst/highcharter/issues/54

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Дает ли это ожидаемый эффект?

library(dplyr)
library(echarts4r)
mtcars %>%  
  tibble::rownames_to_column("model") %>% 
  e_charts(wt) %>% 
  e_scatter(mpg, qsec, bind=model) %>% # pass qsec as size
  e_tooltip(formatter = htmlwidgets::JS("
                                        function(params){
                                        return('<strong>' + params.name + 
                                        '</strong><br />wt: ' + params.value[0] + 
                                        '<br />mpg: ' +  params.value[1] +
                                        '<br />qsec: ' +  params.value[2] )   }  ")) # size = third value
0 голосов
/ 27 мая 2018

Немного странно, но вы можете передать строку с данными, которые вы хотите отобразить, в качестве имени данных, а затем проанализировать их внутри функции.Например,

mtcars %>%  
  tibble::rownames_to_column("model") %>%
  mutate(model = paste(model, qsec, sep = ",")) %>%
  e_charts(wt) %>% 
  e_scatter(mpg, bind = model) %>%
  e_tooltip(formatter = htmlwidgets::JS("
                                        function(params){
                                          var vals = params.name.split(',')
                                          return('<strong>' + vals[0] + 
                                          '</strong><br />wt: ' + params.value[0] + 
                                          '<br />mpg: ' +  params.value[1]) +
                                          '<br />qsec: ' + vals[1]}  "))

, что дает вам

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...