R 基于“单击时绘图”事件对数据帧进行子集
下面我有一个闪亮的应用程序,它显示了一个有五个条形图的堆叠条形图。此条形图取决于FinalDF数据框。我想做的是,当我点击——比方说——第一个栏“TC”时,生成一个表,其中只包含与“TC”相关的信息(R 基于“单击时绘图”事件对数据帧进行子集,r,shiny,plotly,R,Shiny,Plotly,下面我有一个闪亮的应用程序,它显示了一个有五个条形图的堆叠条形图。此条形图取决于FinalDF数据框。我想做的是,当我点击——比方说——第一个栏“TC”时,生成一个表,其中只包含与“TC”相关的信息(FinalDF$Name==“TC”)。所有条都需要相同的逻辑 library(plotly) ui <- fluidPage( plotlyOutput("plot"), dataTableOutput("click") ) server <- function(inpu
FinalDF$Name==“TC”
)。所有条都需要相同的逻辑
library(plotly)
ui <- fluidPage(
plotlyOutput("plot"),
dataTableOutput("click")
)
server <- function(input, output) {
Name<-c("DCH","DCH","DCH","DGI","DGI","DGI","LDP","LDP","LDP","RH","RH","RH","TC","TC","TC")
Class<-c("Class1","Class2","Overlap","Class1","Class2","Overlap","Class1","Class2","Overlap","Class1","Class2","Overlap","Class1","Class2","Overlap")
count<-c(2077,1642,460,1971,5708,566,2316,810,221,2124,3601,413,2160,1097,377)
FinalDF<-data.frame(Name, Class,count)
output$plot <- renderPlotly({
# Create the stacked bar plot using ggplot()
stackedBarPlot<- ggplot(data = FinalDF,key=key) +
geom_col(mapping = aes(x = Name, y = count, fill = Class,reference="DB"), width = rep(0.9,5),
color = "black", position = position_fill(reverse = T)) +
geom_text(size = 4, position = position_fill(reverse = T, vjust = 0.50), color = "black",
mapping = aes(x = Name, y = count, fill = Class, label = round(count),Reference="DB")) +
coord_flip() +
scale_fill_manual(values = c('lemonchiffon', 'palegreen3', 'deepskyblue2'),breaks=c("Class1", "Overlap", "Class2"), labels = c(paste("Unique to","DB"), "Overlap", "Unique to Comparison Dataset "),
guide = guide_legend(label.position = 'left', label.hjust = 0, label.vjust = 0.5))
ggplotly(stackedBarPlot)
})
output$click <- renderDataTable({
d <- event_data("plotly_click")
if (is.null(d)) "Click events appear here (double-click to clear)" else FinalDF
})
}
shinyApp(ui, server)
library(plotly)
ui看起来你有一个大项目和很多问题。祝你好运,伙计。(不必要的评论,只是想传达良好的氛围)。大的,最后期限谢谢你,伙计!看来你的问题解决了?应用程序正在运行。。。