Содержимое всплывающей подсказки rCharts для нескольких строк

#r #tooltip #shiny #rcharts

#r #всплывающая подсказка #блестящий #rcharts

Вопрос:

Я простой программист на языке R, почти не имеющий опыта программирования в HTML или javascript, поэтому мне трудно понять оболочки для кода настройки всплывающих подсказок.

У меня есть 2 временных ряда, которые я построил с помощью rCharts lineWithFocusChart, теперь я хочу настроить всплывающую подсказку так, чтобы она выглядела следующим образом: http://shiny.rstudio.com/gallery/nvd3-line-chart-output.html

Вот мой код на данный момент:

 shinyServer(function(input, output) {

  output$myChart <- renderChart({
    select<-as.numeric(input$radioTS)

    out <- data.frame(Actuals[,select], Fits[,select], mmmyyyy)
    colnames(out) <- c("Actuals","Fits","Date")
    data<-melt(out,id.vars = 'Date')
    data$Date <- as.numeric(as.POSIXct(data$Date)) * 1000

    p1 <- nPlot(
      value ~ Date,
      group = 'variable',
      data = data,
      type = 'lineWithFocusChart',
      width = 650,
      height = 500
    )

    p1$addParams(dom = 'myChart')
    p1$xAxis(tickFormat = "#!function(d) {return d3.time.format('%b %Y')(new Date(d))}!#")
    p1$x2Axis(tickFormat = "#!function(d) {return d3.time.format('%Y')(new Date(d))}!#")
    p1$yAxis(tickFormat = "#!function(d) {return d3.format('0,.0')(d)}!#")

    return(p1) 
  })
})     
  

Комментарии:

1. Пожалуйста, предоставьте минимальный воспроизводимый пример.

Ответ №1:

В блестящем примере, на который ссылается ссылка, используется interactiveGuideline функция nvd3. Вы можете использовать это в rCharts p1$chart(useInteractiveGuideline=TRUE) , но из-за этой проблемы lineWithFocusChart с nvd3 он еще не предлагает эту функциональность, поэтому пока мы будем ограничены lineChart .

К сожалению, nvd3 в настоящее время не поддерживает настройку interactiveGuideline, поскольку этот запрос на извлечение еще не принят. Тем не менее, вы можете получить довольно приличную всплывающую подсказку, присвоив ей правильное имя, как показано в этом примере.

 shinyServer(function(input, output) {

      output$myChart <- renderChart({
        select<-as.numeric(input$radioTS)

        out <- data.frame(Actuals[,select], Fits[,select], mmmyyyy)
        colnames(out) <- c("Actuals","Fits","Date")
        data<-melt(out,id.vars = 'Date')
        data$Date <- as.numeric(as.POSIXct(data$Date)) * 1000

        p1 <- nPlot(
          value ~ Date,
          group = 'variable',
          data = data,
          type = 'lineChart',  # see explanation for why not lineWithFocusChart
          width = 650,
          height = 500
        )

        p1$addParams(dom = 'myChart')
        p1$xAxis(tickFormat = "#!function(d) {return d3.time.format('%b %Y')(new Date(d))}!#")
        #commented x2Axis out since only lineChart
        #p1$x2Axis(tickFormat = "#!function(d) {return d3.time.format('%Y')(new Date(d))}!#")
        p1$yAxis(tickFormat = "#!function(d) {return d3.format('0,.0')(d)}!#")
        p1$chart(useInteractiveGuideline = TRUE)

        return(p1) 
      })
    }) 
  

Комментарии:

1. Большое вам спасибо! Я видел это раньше: p1$chart(useInteractiveGuideline = TRUE) но я не понимал, что это недоступно специально для lineWithFocusChart. Последующий вопрос: знаете ли вы, как добавить и вертикальную линию?