shiny
とggplot2
のインタラクティブプロットを作成したいと思います。私はgeom_point
と他のgeoms
でこれを成功させることができました。明らかにx
とy
の軸を持っています。 geom_bar
のようなものを使用すると、y
という変数がないため、これは難しくなります。Rシャイニープロットジオムバーとファセットでクリック
clickイベントから変数x
を抽出して、望ましいフィルタリングを実行するための解決策がありますが、これらのどちらもファセットを使用しないプロットです。私はファセットでggplot
のクリックオプションを使用したいと思います。最初のリンクでコードを修正しようとしましたが、これは成功しませんでした。バーのいずれかに
library(ggplot2)
library(shiny)
ui <- fluidPage(
fluidRow(
plotOutput("plot1", height = 300, width = 300,
click = "plot1_click",
)
),
verbatimTextOutput("x_value"),
verbatimTextOutput("selected_rows")
)
server <- function(input, output) {
output$plot1 <- renderPlot({
ggplot(ToothGrowth, aes(supp)) + geom_bar(stat = "count") + facet_wrap(~dose)
})
# Print the name of the x value
output$x_value <- renderPrint({
if (is.null(input$plot1_click$x)) return()
lvls <- levels(ToothGrowth$supp)
lvls[round(input$plot1_click$x)]
})
# Print the rows of the data frame which match the x value
output$selected_rows <- renderPrint({
if (is.null(input$plot1_click$x)) return()
keeprows <- round(input$plot1_click$x) == as.numeric(ToothGrowth$supp)
ToothGrowth[keeprows, ]
})
}
shinyApp(ui, server)
クリックx
値にフィルタリングすることもありませんが、すべての面からの結果が含まれています。私はクリックされたファセットからの結果だけを含めることを望みます。
私はpannelvar1
でnearPoints
を使用して試してみましたが、私はそれに渡すy
変数を持っていないので、それはエラーをスローします。
どのような考えですか?
私は2度upvoteできます。 'options(shiny.trace = TRUE)'の巨大な助け。ありがとう、@ダニエルソン。 –