ПОДАРОК ​​в Блестящий в RStudio - PullRequest
0 голосов
/ 23 февраля 2020

Я хотел бы добавить 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...