Я хотел бы добавить GIF с помощью Shiny App в RStudio, но у меня есть 3 GIF, и я хочу построить график, чтобы в данный момент «typeInput» был «Выбрать». Мне нужно соединить и показать GIF со всей другой информацией вместе, но было бы здорово, если бы можно было создать GIF только на определенный период, а не только общий GIF.
Я надеюсь, что это возможно. Не работает кодирование после строки ######
Я пытался использовать это
<a href="https://stackoverflow.com/questions/49013525/render-or-download-animated-gif-on-shiny">Render or download animated GIF on Shiny</a>
, но я не мог понять, как. Спасибо всем за помощь Я совершенно новый в этом слове кодирования.
library(shiny)
library(shinybusy)
ui <- fluidPage(
theme = shinythemes::shinytheme("superhero"),
titlePanel("Time Series of Surface Water Body in Aculeo Lake"),
sidebarLayout(position = "right",
sidebarPanel(
sliderInput("yearsInput", "Choose Years between:", 2000, 2018, c(2000, 2001)),
radioButtons("typeInput", "Choose a type of water:",
choices = c("Permanent", "Seasonal", "Total"),
selected = "Total")
),
mainPanel(position = "left",
plotOutput("coolplot"),
br(), br(),
tableOutput("results")),
br(), br(),
#plotOutput("case_age_plot"),
br(), br()
)
)
server <- function(input, output) {
output$coolplot <- renderPlot({
filtered <-
my_df3 %>%
filter(Year >= input$yearsInput[1] & Year <= input$yearsInput[2],
Type == input$typeInput,
)
ggplot(filtered, aes(Year, y=as.numeric(Area), group = input$typeInput)) +
geom_line(aes(colour = Type), position = "stack", size = .5) +
geom_point(aes(colour = Type), position = "stack", size = 2) +
geom_smooth(method="loess", se=TRUE, formula= y ~ x)+
labs(x="Year", y="Area"~Km^2) +
theme_minimal()
})
output$results <- renderTable({
t(filtered<-
my_df3 %>%
filter(Year >= input$yearsInput[1],
Year <= input$yearsInput[2],
Type == input$typeInput
))
},align = 'c', rownames = TRUE, digits = 2, colnames = FALSE, spacing = 'xs')
Вот часть кода, которая не работает ######
#######################################################################
aniGraph <- reactive({
if (input$typeInput == "Seasonal") {
filtered<-
my_df3 %>%
filter(Year >= input$yearsInput[1],
Year <= input$yearsInput[2],
Type == input$typeInput
)
reswd <- "c:/Data/GIF/"
saveGIF({
for (i in (input$yearsInput[1]-1999):(input$yearsInput[2]-1999)) plot(tmp_Stack1[[i]],
main=names(tmp_Stack1)[i],
legend=FALSE,
col = c("green", "blue"),
breaks=c(0,.000000000000000000001,1),
ani.pause()
)
},
movie.name = paste0(reswd,input$typeInput,".gif"),
ani.width = 480, ani.height = 400,
interval=.5)
}
})
output$case_age_plot <- renderPlot({
aniGraph()
})
}
shinyApp(ui = ui, server = server)
Мне нужно соединить и показать GIF со всей другой информацией вместе, но было бы здорово, если бы можно было создать .gif только на определенный период, а не только общий GIF.