reCharts多行的工具提示内容

时间:2014-06-29 19:51:53

标签: r tooltip shiny rcharts

我是一个简单的R编码器,几乎没有使用HTML编写HTML的经验,所以我很难理解工具提示自定义代码的包装。

我有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 个答案:

答案 0 :(得分:0)

引用的闪亮示例使用nvd3 interactiveGuideline功能。要在rCharts中使用此功能,您可以p1$chart(useInteractiveGuideline=TRUE),但由于此nvd3 issue lineWithFocusChart尚未提供此功能,因此目前我们仅限于lineChart

不幸的是,nvd3目前不支持自定义interactiveGuideline,因为此pull request尚未被接受。但是,您可以通过正确的命名获得相当不错的工具提示,如example所示。

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) 
      })
    })