Inflexible chart dimension

I am a Shiny novice with a simple question. I have a test app.R that reads a data frame, asks the user for a start date and displays a time series area chart starting from that date. The app.R works, but when I expand the size of my window the chart is fixed in the top-to-bottom dimension. The left-to-right dimension is flexible. How can I make the top-to-bottom dimension flexible too? Here is my reprex:

library(Shiny)
library(ggplot2)

a <- c(seq.Date(as.Date("2019-01-01"),as.Date("2019-06-01"),by="month"))
b <- c(4,7,2,9,13,6)
df <- data.frame(a=a,b=b)

ui <- fluidPage(
  titlePanel("Test example"),
  fluidRow(
    sidebarPanel(  
      dateInput(inputId="StartDate",label="Please enter a start date:",
        value="2019-01-01",min="2019-01-01",max="2019-06-01")
    )
  ), 
  fluidRow(
    column(12),
    mainPanel(
       plotOutput("distPlot")
    )
  )
)

server <- function(input, output) {
   output$distPlot <- renderPlot({
     FirstDate <- input$StartDate
     ggplot(filter(df,a>=as.Date(FirstDate)))+
       geom_area(aes(x=a,y=b,fill="red"),alpha=0.4)+
       geom_line(aes(x=a,y=b,colour="red"),size=1)+
       theme(legend.position="none")
   })
}

shinyApp(ui = ui, server = server)

Philip

you can use html syntax such as vw or vh to make an element propotional to viewpoint width or viewpoint height.

 plotOutput("distPlot",
                 width ="80vw",
                 height="60vw")
1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.