2017-06-26 5 views
0

Plotlyは、プロットのポイントのクリックに応答するevent_data関数を持っています。ただし、監視するプロットを識別するevent_dataの「ソース」を指定する必要があります。R - ggplot:クリックされたグラフのIDを取得

この種類の機能はggplotでも利用できますか?そうでなければ、クリックされたプロットのIDをどのように見つけることができますか?

注:グラフとしてワードクラウドを参照しており、これらのグラフは動的に生成されます。

+0

はい、可能です。 Look [here](https://shiny.rstudio.com/gallery/plot-interaction-selecting-points.html) –

+0

いいえ、これは私が望むものではありません。例:5つのプロットがあり、そのうちの1つをクリックすると、そのクリックされたグラフのIDが必要です。 – Lok

+0

だから、あなたは大きなプロダクトボタンのように各プロットを扱いたいですか? –

答えて

1

を助けチェックし、最小限の例ですホーププロットがクリックされます。無効な値selected_plotは、クリックイベントが発生するたびに更新されます。

library(shiny) 

ui = fluidPage(
    verbatimTextOutput("text"), 
    plotOutput("plot1", click = "plot1_click"), 
    plotOutput("plot2", click = "plot2_click") 
) 

server = function(input, output, session){ 
    output$plot1 = renderPlot({ 
    hist(rnorm(1000)) 
    }) 
    output$plot2 = renderPlot({ 
    plot(cumsum(rnorm(1000))) 
    }) 

    selected_plot = reactiveVal() 
    observeEvent(input$plot1_click, {selected_plot(1)}) 
    observeEvent(input$plot2_click, {selected_plot(2)}) 

    output$text = renderPrint({ 
    cat("selected plot:", selected_plot()) 
    }) 
} 

shinyApp(ui, server) 

あなたもrenderPlotoutputArgs引数を使用して、サーバー側でclickオプションを指定することができます。

0

あなたがevent_data()機能をあなたはそれを作成した後ggplotly(<yourplot>)を呼び出すplotly -graphにごggplotグラフを変換して使用することができます。

library(plotly) 

set.seed(100) 
d <- diamonds[sample(nrow(diamonds), 1000), ]  
p <- ggplot(data = d, aes(x = carat, y = price)) + geom_point() 
ggplotly(p) 

enter image description here

+0

実際にグラフとしてワードクラウドを使用しており、それをプロットに変換したくありません。 – Lok

0

それはどんな例なしで説明するのは難しいです。しかし、あなたはgeom_point_interactivegeom_pointを変更し、後でこのようなものを使用することができますggiraphパッケージへShinyのおかげで、あなたの仕事:

selected_dot <- reactive({ 
    input$plot_selected 
}) 

が、それはここで少し

関連する問題