我已经浏览了R Shiny教程和stackoverflow,以获取与查询有关的答案。我通常要等待3-4天才能解决编码问题,然后再尝试发布。
我的UI中有一个动画滑块,该滑块在列中的时间间隔内循环(列a)。我正在尝试制作一个动画线图,该图绘制另一列(b列)的y值,对应于该时间间隔的nrow()。滑块工作正常,但是我无法绘制输出。
我可能错过了一些与Shiny应用程序中的反应性相关的概念。感谢我可以与我的查询相关的任何指导。如果需要,我很乐意发布更多信息。
a <- c(0,1,2,3,4,5,6)
b <- c(50,100,40,30,20,80)
mydata <- cbind(a,b)
mydata <- as.data.frame(mydata())
ui <- fluidPage (
headerPanel("basic app"),
sidebarPanel(
sliderInput("slider",
label = "Time elapsed",
min = 0,
max = nrow(mydata()),
value = 1, step = 1,
animate =
animationOptions(interval = 200, loop = TRUE))
),
mainPanel(
plotlyOutput("plot")
)
)
server <- function(input, output) {
sliderValues <- reactive({
data.frame(
Name = "slider",
Value = input$slider)
})
output$plot <- renderPlot({
x<- as.numeric(input$slider)
y <- as.numeric(b[x])
ggplot(mydata,aes_string(x,y))+ geom_line()
})
}
作为演示,我希望动画图可以这样显示,但要与UI滑块值相对应:
library(gganimate)
library(ggplot2)
fake <- c(1,10)
goods <- c(11,20)
fakegoods <- cbind(fake,goods)
fakegoods <- data.frame(fakegoods)
ggplot(fakegoods, aes(fake, goods)) + geom_line() + transition_reveal(1, fake)
答案 0 :(得分:0)
这能完成您想要的吗?请注意,我从向量0
中删除了第一个元素a
,因为您的原始示例在a
中的元素要多于b
,为了使它们成为{{ 1}}的长度必须相同。
cbind