在Rmarkdown html文档中,如何为用于绘图的crosstalk::filter_select下拉菜单选择默认值?例如,在下面的例子中,在编织RMD时仅选择组'a‘。
我知道对于下面的reprex示例,使用绘图按钮会更容易,但当有4-5个左右的选择时,绘图下拉/按钮占用了太多空间/相当难看。同样希望避免运行一个闪亮的服务器,这个想法是为了速度的目的让一切都运行在客户端。
在串扰中有一个PR,它向filter_select函数添加了一个“默认选择”参数,但该版本不能与plotly (https://github.com/rstudio/crosstalk/pull/70)一起使用。我猜最简单的方法是将javascript添加到文档中来操纵串扰对象,但一些实验还没有走得太远。
Reprex rmd:
---
output:
html_document
---
```{r echo=FALSE, message=FALSE, warning=FALSE}库(绘图)
示例数据
dat <- tibble::tribble(~filterBy,~x,~y,
"a", 1, 1, "b", 2, 1, "a", 1, 2, "b", 2, 2, "a", 1, 3, "b", 2, 3, "a", 1, 2, "b", 2, 3, "c", 3, 1, "c", 3, 2, "c", 3, 3 ) 初始化串扰共享数据对象
plotdat <- highlight_key(dat)
过滤器下拉列表
question_filter <- crosstalk::filter_select(
"filter",“选择要检查的组”,
plotdat,~filterBy,multiple =F
)
绘图:
plot <- plot_ly( plotdat,
x = ~x, y = ~y, text = ~filterBy, mode = "markers+text", textposition = "top", hoverinfo = "x+y")
只是为了方便展示而把东西放在一起:
闪亮::标签$div(class= 'flexbox',
question_filter, shiny::tags$br(), plot)发布于 2021-08-23 18:59:19
这个问题似乎已经通过安装“rstudio/ here #70”得到了解决。然后,您将能够使用select选项
发布于 2020-10-12 07:41:18
你可以使用javascript直接操作串扰filter_select输出的选择框,诀窍是在加载时触发它,如下所示:
```{js}
function filter_default() {
document.getElementById("filter").getElementsByClassName("selectized")[0].selectize.setValue("a", false);
}
window.onload = filter_default;
```发布于 2021-02-16 07:07:09
作为对公认答案的补充,这个答案在我的例子中在RStudio查看器中起作用,但在Chrome/Edge/IE/Firefox中不起作用: jQuery event Document.ready解决了问题(idea from this thread)
$(document).ready(function() {
document.getElementById("filter").getElementsByClassName("selectized")[0].selectize.setValue("a", false);
});https://stackoverflow.com/questions/64234585
复制相似问题