2016-05-12 5 views
2

ハイハターライブラリを使用して、光沢のあるマルチバープロットを表示したいと思います(これは完了です)。ハイチャートの光沢のあるRバープロットをクリックしてテーブルをサブセット化する方法は?

また、プロット内にデータを持つテーブルを表示したいと思います。

バーをクリックしてデータを自動的にサブセット化し、選択した列を参照するデータのみをshiny/Rコマンドで表示することができますか?ここで

は私のコードです:

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

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

    server = function(input, output) {  
      output$hcontainer <- renderHighchart({  

      hc <- highchart() %>% 
       hc_xAxis(categories = a$b) %>% 
       hc_add_serie(name = "c", data = a$c) %>% 
       hc_add_serie(name = "d", data = a$d) %>% 
       hc_add_serie(name = "e", data = a$e) %>% 
       hc_plotOptions(series = list(stacking = FALSE)) %>% 
       hc_chart(type = "column") 

       hc   
      })  
     } 

    shinyApp(ui = ui, server = server) 

は、私は、データフレームのサブセットたい "" [、column_x]を行うことで、column_xはhighchart( "C"、「Dで選択したバーです"または" e ")。

私の質問は、どのようにserver.rに選択された変数を送信することができますか?私が行うとき、これが機能しない理由

はK.ローデ

に応じて、あなたは私に言うことができます:

myClickFunc <- JS("function(event) {Shiny.onInputChange('hcClicked', { x: this.name, y: this.categories });}") 

と:

output$tablecontainer <- renderText({ paste(input$hcClicked$x,input$hcClicked$y) }) 

がちょうどinput$hcClicked$xを印刷されていますか?

私は次のアクションをキャプチャする必要が

: - バーでクリックします(これはokです)が名前とどのカテゴリ - 伝説 で名前を選択しクリック - クリックプロット背景に

これは可能ですか? 多くのお礼ありがとうございます

+0

非常に可能です。あなたが持っていない部分が擬似コードであるサンプルデータセットと光沢のあるアプリケーションを提供できますか?この方法で、データの表示方法と場所などを明確にします。 –

答えて

2

これは問題ありませんか?

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

ui <- shinyUI(
    fluidPage(
    column(width = 8, highchartOutput("hcontainer", height = "500px")), 
    column(width = 4, dataTableOutput("tablecontainer")) 
) 
) 

server <- function(input, output) {  

    a <- data.frame(b = LETTERS[1:10], c = 11:20, d = 21:30, e = 31:40) 

    output$hcontainer <- renderHighchart({  

    myClickFunc <- JS("function(event) {Shiny.onInputChange('hcClicked', this.name);}") 

    highchart() %>% 
     hc_xAxis(categories = a$b) %>% 
     hc_add_serie(name = "c", data = a$c) %>% 
     hc_add_serie(name = "d", data = a$d) %>% 
     hc_add_serie(name = "e", data = a$e) %>% 
     hc_plotOptions(series = list(stacking = FALSE, events = list(click = myClickFunc))) %>% 
     hc_chart(type = "column") 

    })  

    output$tablecontainer <- renderDataTable({ 
    if(!is.null(input$hcClicked)){ 
     subset(a, , c("b", input$hcClicked)) 
    } 
    }) 
} 

shinyApp(ui = ui, server = server) 

クリックイベントのJavaScript関数をグラフに挿入できます。私はさらに、hereを読んで、どの値をクリックから抽出できるのかを知ることをお勧めします。この例では、ちょうどクリックしたシリーズの名前を光ってinput$hcClickedに送りました。

+0

カテゴリを送信する方法、または(バーをクリックするのではなく)凡例をクリックしてデータを選択する方法を、そのリンクのどこで見つけることができますか教えてください。ありがとう!! – hsilva

+1

私は良い文書がないと思う。しかし、[ここ](http://api.highcharts.com/highcharts#plotOptions.series.events.legendItemClick)では、凡例の部分を見つけることができます。この場合でも同じ関数を使用することができます。残りは試行錯誤です。おそらく 'console.log(event);'を使用して、クリックイベントが保持する完全な情報を表示します。 –

関連する問題