R блестящее большее окно - PullRequest
0 голосов
/ 25 января 2020

Можете ли вы, ребята, помочь мне, как не нужно прокручивать или увеличивать окно приложения, чтобы вы могли видеть ползунки и графики одновременно? Или эта ползунок и сюжет будут рядом. см. Рисунок

Вот код:

library(deSolve)
library(shiny)


ui <- verticalLayout(

  titlePanel("Zvolte údaje"),


  sliderInput(inputId = "time_values", label = "Počet dnů", value = 10, min = 1, max = 100),
  sliderInput(inputId = "beta", label ="Míra nákazy", value = 0.05, min = 0, max = 1, step = 0.01),
  sliderInput(inputId = "gamma", label ="Míra uzdravení", value = 0.5, min = 0, max = 1, step = 0.1),


  (plotOutput("plot"))
)

server <- function(input, output) {
  sir_equations <- function(time, variables, parameters) {
    with(as.list(c(variables, parameters)), {
      dS <- -beta * I * S
      dI <-  beta * I * S - gamma * I
      dR <-  gamma * I
      return(list(c(dS, dI, dR)))
    })
  }

  initial_values <-  c(S = 1000, I = 1, R = 0)

  sir_values_1 <- reactiveValues(val = data.frame())

  observe({
    sir_values_1$val <- as.data.frame(ode(
      y = initial_values,
      times = seq(0, input$time_values),
      func = sir_equations,
      parms = c(beta=input$beta, gamma=input$gamma) 
    ))
  })

  output$plot <- renderPlot({
    with(sir_values_1$val, {
    plot(sir_values_1$val$time, sir_values_1$val$S, type = "l", col = "blue",
         xlab = "Doba (dny)", ylab = "Počet lidí")
    lines(sir_values_1$val$time, sir_values_1$val$I, col = "red")
    lines(sir_values_1$val$time, sir_values_1$val$R, col = "green")
    legend("right", c("zdraví", "nakažení", "uzdravení"),
           col = c("blue", "red", "green"), lty = 1, bty = "n")
    })
  })
}

shinyApp(ui = ui, server = server)

Спасибо

1 Ответ

0 голосов
/ 25 января 2020

Я не знаком с verticalLayout(), но если вы используете fluidPage(), вы можете достичь этого результата.

Я также упростил ваш код до примера, который может запустить каждый. Вы получите больше помощи, если максимально упростите свой код; удалите как можно больше библиотек, упростите набор данных и реактивные значения и т. д. c.

library(shiny)


ui <- fluidPage(

  titlePanel("Zvolte údaje"),
  fluidRow(
    column(width = 4,
      sliderInput(inputId = "bins", label = "Number of bins:", min = 1, max = 50, value = 30),
      sliderInput(inputId = "beta", label ="Slider 2", value = 0.05, min = 0, max = 1, step = 0.01),
      sliderInput(inputId = "gamma", label ="Slider 3", value = 0.5, min = 0, max = 1, step = 0.1)
    ),
    column(width = 8,
      plotOutput("plot")
    )
  )
)


server <- function(input, output) {

  output$plot <- renderPlot({

    x    <- faithful$waiting
    bins <- seq(min(x), max(x), length.out = input$bins + 1)

    hist(x, breaks = bins, col = "#75AADB", border = "white",
         xlab = "Waiting time to next eruption (in mins)",
         main = "Histogram of waiting times")

  })
}

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