javascript - 基于带有另一个数据框的绘图图表的点击事件的子数据框
问题描述
我有shiny
下面的应用程序,我想在其中单击图表的一个栏,然后根据第一个数据框的列相应地对下表进行子集化Abcd
。在单击之前,表格将不被子集显示。我的意图不是使用该crosstalk
包,而是使用 javascript 或其他可能的方式,如plotly_click
event。
Abcd<-c("A","A","B","B")
Prod<-c(34,56,56,89)
Div<-c("Ent","Ent","App","High")
dcross1<-data.frame(Abcd,Prod,Div)
Countd<-c(45,67,78,56)
dcross2<-data.frame(Div,Abcd,Countd)
library(shiny)
library(plotly)
library(ggplot2)
library(dplyr)
library(DT)
ui <- fluidPage(
plotlyOutput("daily_store_oos_gg"),
DTOutput("daily_item_oos_rctble")
)
server <- function(input, output) {
output$daily_store_oos_gg<-renderPlotly({
# You need function otherwise data.frame NN is not visible
ggplot(dcross1,
aes(x=Abcd,
y=Prod,
fill=as.factor(Abcd)
)) +
geom_bar(stat="identity", position="dodge")
# Convert to plotly object
ggplotly(daily_store_oos_gg,source="subset")
})
output$daily_item_oos_rctble<-renderDT({
s <- event_data("plotly_click",source = "subset")
return(DT::datatable(dcross2[dcross2$Abcd==s$x,]))
})
}
shinyApp(ui, server)
解决方案
推荐阅读
- c - 使用 pthread 未打印预期值
- javascript - 触发 OnSave [Visual Studio 代码:扩展]
- selenium - 抓取材料的单位
- ruby-on-rails - Rails如何将link_to用于外部网站并使用块?
- javascript - 是否可以通过 JavaScript 获取一种语言中所有单词的列表?
- node.js - 如何使用 Google 云功能从 Firebase 实时数据库中读取值?
- node.js - 本地运行的 Firebase 函数未使用 Firebase Admin SDK 进行身份验证
- design-patterns - 策略模式 Java
- three.js - 是否可以在threejs中命名旋转/关节以及如何设置它们?
- python - Tkinter 条目返回 ValueError: invalid literal for int() with base 10: ''