2016-09-03 1 views
0

Доброго дня всем :),содержания подсказки в highchart в Rshiny

У меня есть небольшая проблема с подсказкой в ​​пределах highchart на графике Rshiny. Я воспроизвел проблему в упрощенном примере, требуя «highchart» и «блестящих» librairies. Вот код:

library("shiny") 
library("highcharter") 

data(citytemp) 

ui <- fluidPage(
    h1("Highcharter EXAMPLE"), 
    fluidRow(
     column(width = 8, 
       highchartOutput("hcontainer",height = "500px") 
     ) 
    ) 
) 

server = function(input, output) { 
    data = data[,c("month","tokyo","new_york")] 
    output$hcontainer <- renderHighchart({ 
     hc <- highchart() %>% 
      hc_chart(type = "line") %>% 
      hc_title(text = "Monthly Average Temperature for TOKYO") %>% 
      hc_subtitle(text = "Source: WorldClimate.com") %>% 
      hc_xAxis(categories = c('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) %>% 
      hc_yAxis(title = list(text = "Temperature (C)")) %>% 
      hc_tooltip(pointFormat = '<span style="color:{series.color}">As for NY: </span>: 
         <b>{point.percentage:.1f}%</b> ({point.y:,.0f} millions)<br/>', 
        followPointer=TRUE, 
        shared = TRUE)%>% 
      hc_plotOptions(line = list(
       dataLabels = list(enabled = TRUE), 
       enableMouseTracking = FALSE) 
      ) %>% 
      hc_series(
       list(
        name = "Tokyo", 
        data = data$tokyo))  
     hc 

    }) 

} 

shinyApp(ui = ui, server = server) 

У меня проблема со всплывающей подсказкой, я не могу понять, почему она не работает? Он не появляется в приложении во время запуска. Кроме того, я хотел бы, чтобы всплывающая подсказка содержала данные из другой серии (здесь New york) - это возможно или всплывающая подсказка может ссылаться только на строку на диаграмме? Большое вам спасибо за помощь! Всего лучший, Madzia

+0

кстати. изменено 'data = data [, c (« month »,« tokyo »,« new_york »)]' to 'data <- citytemp [, c (" month "," tokyo "," new_york ")]' – nilsole

ответ

2

При установке опции участка enableMouseTracking в TRUE в вашем примере, появляются всплывающие подсказки.

Я также editied всплывающей подсказки с JavaScript, чтобы сделать доступные общие данные, в соответствии с этой должностью: https://stackoverflow.com/a/19315076

это поможет вам? :)

library("shiny") 
library("highcharter") 

data(citytemp) 

ui <- fluidPage(
    h1("Highcharter EXAMPLE"), 
    fluidRow(
    column(width = 8, 
      highchartOutput("hcontainer",height = "500px") 
    ) 
) 
) 

server <- function(input, output) { 
    data <- citytemp[,c("month","tokyo","new_york")] 
    output$hcontainer <- renderHighchart({ 
    hc <- highchart() %>% 
     hc_chart(type = "line") %>% 
     hc_title(text = "Monthly Average Temperature for TOKYO") %>% 
     hc_subtitle(text = "Source: WorldClimate.com") %>% 
     hc_xAxis(categories = c('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 
           'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) %>% 
     hc_yAxis(title = list(text = "Temperature (C)")) %>% 
     hc_series(
     list(
      name = "Tokyo", 
      data = data$tokyo), 
     list(
      name = "New York", 
      data = data$new_york) 
     ) %>% 
     hc_tooltip(
formatter = JS("function() { 

    var s = []; 

    $.each(this.points, function(i, point) { 
     s.push('<span style=\"color:' + point.series.color + ';font-weight:bold;\">' + point.series.name + ' : ' + point.y + '<span>'); 
    }); 

    if (this.points.length === 2) { 
     s.push('<span>Second point is ' + Math.round((this.points[1].y/this.points[0].y) * 100) + '% of first point.</span>'); 

    } 

    return s.join('<br/>'); 

}"), 
       followPointer=TRUE, 
       shared = TRUE) %>% 
     hc_plotOptions(line = list(
     dataLabels = list(enabled = TRUE), 
     enableMouseTracking = TRUE 
     ) 
    ) 
    return(hc) 
    }) 
} 

shinyApp(ui = ui, server = server) 
+1

Кроме того , Я нашел здесь еще один рабочий пример: http://www.tutorialspoint.com/execute_r_online.php?PID=0Bw_CjBb95KQMTVNvR2cyUEQ4WWs Первоначально взятый и немного адаптированный: http://jkunst.com/highcharter/shiny.html – nilsole

+0

updated еще раз. – nilsole

+0

Привет! большое спасибо за ваш быстрый ответ! :) Да, это здорово и хорошо работает! Но на самом деле я хотел добавить информацию о нью-йоркском университете, не рассматривая связанную с ним кривую. Есть ли способ справиться с этим? Я полагаю, что создание прозрачной кривой может работать, например? – Madzia

Смежные вопросы