我一直在与R in中的ggvis合作制作一个闪亮的应用程序。我在使用"切换"时遇到了一些麻烦。在一些交互式绘图之上包含线性模型的选项。
我已经从基本工作示例here重新创建了一个最小的工作示例(它反映了我自己的,更复杂的应用程序)。我的扩展通常包括线性模型运行正常:
library(shiny)
library(ggvis)
library(ggplot2)
runApp(list(
ui = bootstrapPage(
ggvisOutput("plot"),
uiOutput("plot_ui")
),
server = function(..., session) {
mtc <- mtcars
mtc$id <- 1:nrow(mtc)
all_values <- function(x) {
if(is.null(x)) return(NULL)
row <- mtc[mtc$id == x$id, ]
paste0(names(row), ": ", format(row), collapse = "<br />")
}
mtc %>% ggvis(x = ~wt, y = ~mpg) %>%
layer_model_predictions(model = "lm", se = TRUE, opacity:= 0.3) %>%
layer_points(key := ~id) %>%
add_tooltip(all_values, "hover") %>%
bind_shiny("plot", "plot_ui") }))
(尽管让我感到困扰的是我无法摆脱layer_model_predictions()上的悬停文字,这是一个不那么令人担忧的化妆品问题。)
我尝试过这种设置的变体,例如:
library(shiny)
library(ggvis)
library(ggplot2)
runApp(list(
ui = bootstrapPage(
ggvisOutput("plot"),
uiOutput("plot_ui"),
selectInput("radio2", "Linear Fit",
list("Off" = "Off",
"On" = "On"))
),
server = function(..., session) {
mtc <- mtcars
mtc$id <- 1:nrow(mtc)
all_values <- function(x) {
if(is.null(x)) return(NULL)
row <- mtc[mtc$id == x$id, ]
paste0(names(row), ": ", format(row), collapse = "<br />")
}
reactive({ if (input$radio2=="On"){
mtc %>% ggvis(x = ~wt, y = ~mpg) %>%
layer_model_predictions(model = "lm", se = TRUE, opacity:= 0.3) %>%
layer_points(key := ~id) %>%
add_tooltip(all_values, "hover") %>%
bind_shiny("plot", "plot_ui") } })
reactive({ if (input$radio2=="Off"){
mtc %>% ggvis(x = ~wt, y = ~mpg) %>%
#### layer_model_predictions(model = "lm", se = TRUE, opacity:= 0.3) %>%
layer_points(key := ~id) %>%
add_tooltip(all_values, "hover") %>%
bind_shiny("plot", "plot_ui") } })
}
))
...情节完全消失,但没有错误/警告,所以它不清楚为什么它会消失。
我尝试了其他一些事情,比如
在代码中的不同位置移动反应性和if语句(例如:在ggvis绘图代码块中),但是没有任何好运可以让它更好地工作。
< / LI>我尝试传递不透明度:=输入$ value到线性模型,以便我可以打开和关闭线性模型的可见性(这有点hacky,因为它并没有完全解决问题)。我尝试了opacity:= reactive({as.numeric(input $ value)}),其中输入的$ value是0或100.当我试过这个时,我得到一个&#34; object&的错误#39;输入&#39;找不到&#34;,这让我想知道是否有一些额外的障碍将UI输入传递到基于ggvis的情节(?)。
我在其他地方找不到这个特定问题的解决方案。我很高兴听到任何想法或建议或其他方法。
版本信息:我在Mac上运行Yosemite,使用R 3.2.0(&#34; Full of Ingredients&#34;)并使用RStudio 0.99.441。另外,ggplot2_1.0.1,ggvis_0.4.1和shiny_0.12.0。