【发布时间】:2016-11-28 16:59:50
【问题描述】:
我创建了一个简单的应用程序,其中包括 selectInput 小部件和 rCharts 中的条形图。我想要完成的是用所有三本书的图例创建情节,但默认情况下只显示小部件选择的一本书。因此,当我从Book1 更改为Book2 时,该图最初将仅显示有关Book2 的信息,但图例将包括Book1 和Book3(默认情况下均禁用)-如果我愿意,我可以选择@ 987654330@ 或 Book3 随时。我相信这是 JS 问题,所以我试图解决它,但没有任何改变。任何想法如何处理它?谢谢。
library(shiny)
library(rCharts)
books <- c('Book1','Book2','Book3')
df <- data.frame(book = rep(books, each = 10),
year = rep(2000:2009,3),
sale = sample(100:1000, 30, replace = T))
ui <- shinyUI(
fluidPage(
HTML("
<script>
$( document ).ready(function() {
if ( $(\"select#book div.selectize-dropdown div[data-value='Book1']\").hasClass('selected')) {
console.log('true');
$('#nvd3Plot .nv-legend g.nv-series').eq(1).addClass('disabled');
$('#nvd3Plot .nv-legend g.nv-series').eq(2).addClass('disabled');
}
else {
console.log('false');
}
});
</script>"),
selectInput('book', 'Select a book', choices = books, selected = 'Book1'),
showOutput("nvd3Plot", "nvd3")
)
)
server <- function(input, output, session) {
output$nvd3Plot <- renderChart2({
chartObject <- nPlot(sale ~ year, group = "book", data = df, type = "multiBarChart")
chartObject$chart(
showControls = FALSE
)
return(chartObject)
})
}
shinyApp(ui, server)
更新
我找到了这个solution,但实际上我不知道如何在 R 中实现它。
【问题讨论】:
-
我还没有找到它是如何做到的,但是如果你看这里 [nvd3](我还没有找到)你可以看到 Multibar Chart with Controls他们使用 controle 过滤关于性别(男性,女性)的数据集的示例。可能是他们的事情是这样做的。
-
请把这个链接发给我好吗?
-
我在这个例子中看到的是基于两个变量的双重过滤。我的问题完全不同。
-
我知道,但他们使用带有 java 脚本的 UI 端事件来根据过滤切换值。如果您可以看看它是如何完成的,可能会对您有所帮助
标签: javascript r shiny rcharts