代码之家  ›  专栏  ›  技术社区  ›  jyjek

在工具提示echarts4r中显示额外变量

  •  1
  • jyjek  · 技术社区  · 6 年前

    我试图在工具提示中使用额外的变量进行绘图,但无法理解如何进行绘图。
    例如,我想显示 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 回复  |  直到 6 年前
        1
  •  4
  •   Weihuang Wong    6 年前

    有点老土,但您可以传入一个字符串,其中包含希望显示为数据名的数据,然后在函数内部对其进行解析。例如,

    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

        2
  •  1
  •   JohnCoene    6 年前

    这会产生预期效果吗?

    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