ropenair

Add Space Between Panels of Openair windRose Plots


I created some windrose plots using the openair package and I'm pretty happy with how they turned out but aesthetically it would be nice to have some space between panels. Here's an example:

# windrose plot----
library(openair)
data("mydata")

windRose(mydata[1:144,], ws="ws", wd="wd", 
         paddle = F, 
         type = 'weekday', 
         key.header = 'Wind Speed (m/s)',
         key.footer = "",
         annotate = F,
         angle = 30, # angle of "spokes"...sort of bins for wind direction
         cols =  'jet',
         key.position = 'right',
         dig.lab = 2,
         statistic = 'prop.count', #“prop.count” sizes bins according to the 
         # proportion of the frequency of measurements
         fontsize = 20,
         grid.line = 100,
         max.freq = 105, # maximum value for the radial limits
         key = list(header = "Wind Speed (m/s)",
                    footer = '',
                    labels = c('0 to 2', '2 to 4', 
                               '4 to 6','6 or more'),
                    breaks = c(0,2,4,6)),
         layout = c(6,1)
)

Anyone have any ideas of how to add space between the panels?


Solution

  • After some digging I found that this plot function utilizes trellis plots, here is a good rundown on them: https://www.stat.auckland.ac.nz/~ihaka/787/lectures-trellis.pdf

    Specifically the xyplot function is used to create the trellis plot. The help documentation for ?xyplot shows that you can adjust the argument between to achieve spacing between panels. The between argument is a list containing x and y values that represent space between panels. Therefore we can adjust the above code simply by adding the argument between = list(x=0.25, y = 0.25) and can adjust x and y to our preference like this:

    library(openair)
    data("mydata")
    
    windRose(mydata[1:144,], ws="ws", wd="wd", 
             paddle = F, 
             type = 'weekday', 
             key.header = 'Wind Speed (m/s)',
             key.footer = "",
             annotate = F,
             angle = 30, # angle of "spokes"...sort of bins for wind direction
             cols =  'jet',
             key.position = 'right',
             dig.lab = 2,
             statistic = 'prop.count', #“prop.count” sizes bins according to the 
             # proportion of the frequency of measurements
             fontsize = 20,
             grid.line = 100,
             max.freq = 105, # maximum value for the radial limits
             key = list(header = "Wind Speed (m/s)",
                        footer = '',
                        labels = c('0 to 2', '2 to 4', 
                                   '4 to 6','6 or more'),
                        breaks = c(0,2,4,6)),
             layout = c(6,1),
             between = list(x=0.25, y=0.25)
    )