R光沢のある宝物化オブジェクトに対して「オンクリック」イベントを実行することは可能ですか?私は他のタイプのggplot2オブジェクトのために以下のコードをテストしました。また、ツリーマップに対して「オンクリック」イベントを実行する別の方法がある場合は、教えてください。Rの宝物化オブジェクトにオンクリックを使用するShiny
global.R
library(tidyverse)
library(treemapify)
library(shiny)
source("functions.R")
mt <- data.frame(mtcars)
cylinders <- unique(mt$cyl)
functions.R
tmapData <- function(act_cyl) {
play <- mt %>%
mutate(name = row.names(mtcars)) %>%
dplyr::filter(cyl == act_cyl)
return(play)
}
tmapPlot <- function(act_cyl) {
play <- tmapData(act_cyl)
p <- ggplot(play, aes(area = wt, fill = mpg, label = name)) +
geom_treemap() +
geom_treemap_text(grow = FALSE, reflow = TRUE, color = "black")
return(p)
}
server.R
shinyServer(function(input, output) {
active_cyl <- reactive({
input$cyl_input
})
output$tmap <- renderPlot({
tmapPlot(active_cyl())
})
output$tdata <- DT::renderDataTable(
out <- DT::datatable({
tmapData(active_cyl()) %>%
select(name, mpg, wt)
})
)
output$out_text <- renderPrint({
nearPoints(mt, input$tClick, threshold = 10,
maxpoints = 1, addDist = TRUE)
})
})
ui.R
shinyUI(fluidPage(
titlePanel("nearPoints Test"),
mainPanel(
fluidRow(
selectInput("cyl_input", "Number of Cylinders",
choices = cylinders)
),
fluidRow(
column(8, h3("First Column"), plotOutput("tmap", click = "tClick")),
column(4, h3("Second Column"), DT::dataTableOutput("tdata"))
),
fluidRow(
verbatimTextOutput("out_text")
)
)
)
)
本当にありがとうございました!あなたが言ったことはすべて理にかなっています。これを実際のアプリに変換する必要があります! –