在露天 windRose 图的面板之间添加 Space

Add Space Between Panels of Openair windRose Plots

我使用 openair 包创建了一些 windrose 图,我对它们的结果非常满意,但从美学上讲,在面板之间有一些 space 会很好。这是一个例子:

# 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)
)

有人知道如何在面板之间添加 space 吗?

经过一番挖掘,我发现这个绘图函数使用了网格图,这里有一个很好的概述:https://www.stat.auckland.ac.nz/~ihaka/787/lectures-trellis.pdf

具体来说,xyplot 函数用于创建网格图。 ?xyplot 的帮助文档显示您可以调整参数 between 以实现面板之间的间距。 between 参数是一个列表,其中包含表示面板之间 space 的 x 和 y 值。因此我们可以简单地通过添加参数 between = list(x=0.25, y = 0.25) 来调整上面的代码,并且可以像这样调整 x 和 y 到我们的偏好:

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)
)