经过几个小时的修补和谷歌搜索后,我想我可能会走到尽头。我正在学习Shiny R并且正在尝试使用ggvis
库创建散点图。到目前为止,我有以下代码:
app.R:
library(shiny)
library(ggvis)
library(dplyr)
# Define UI for application
ui <- fluidPage(
p("hello world"),
ggvisOutput("plot"),
p("hello world")
)
# Define server logic
server <- function(input, output, session) {
#Plot a scatter plot for employment counts
output$plot <- reactive({
year <- c(2011, 2012, 2013, 2014, 2015, 2016)
plotData <- c(123456, 1234567, 234561, 213465, 465791, 222222)
dataDF <- data.frame(Year = year, Data = plotData)
layer_points(ggvis(dataDF, ~Year, ~Data))
})
}
# Knit the ui and server, then run the application
shinyApp(ui = ui, server = server)
我猜这应该很简单但是当我运行它时我没有得到任何情节。它只显示hello world
两次,其间有空格。我使用Rstudio复制了这个,没有Shiny App插件,它看起来很好!我正在遵循代码here,显然我试图简化工作。我也一直关注这个link,遗憾的是没有运气。
有人会有任何想法吗?真的很感激帮助。
答案 0 :(得分:0)
来自?ggvis::ggvisOutput
:
服务器侧
以交互方式运行ggvis plot时,会自动绘制 因为它触发了默认的打印方法。 在闪亮的应用中,您需要 使用将图表显式渲染到特定占位符
bind_shiny
:
p %>% bind_shiny("plot")
所以你可以做bind_shiny(layer_points(ggvis(dataDF, ~Year, ~Data)), "plot")
或使用%>%
:
data.frame(Year = year, Data = plotData) %>%
ggvis(~Year, ~Data) %>%
layer_points() %>%
bind_shiny("plot")
请注意,您无需将其置于被动状态。