R 使用非默认轴位置时,如何增加轴标题与绘图的距离?

R 使用非默认轴位置时,如何增加轴标题与绘图的距离?,r,ggplot2,R,Ggplot2,我想增加刻面条和轴标题之间的间距 我有一个使用facet\u grid的绘图,轴标题位于非默认位置:顶部和右侧 axis.title的margin参数根本没有影响:theme(axis.title=element\u text(margin=margin(20,20,20,20))什么也不做。 我尝试过通过缩放而不是主题来抑制轴。勾选和轴。文本,但没有什么区别 以下是一个可复制的示例: example.data <- data.frame(x.var = rep(-2:2, 5),

我想增加刻面条和轴标题之间的间距

我有一个使用
facet\u grid
的绘图,轴标题位于非默认位置:顶部和右侧

axis.title的
margin
参数根本没有影响:
theme(axis.title=element\u text(margin=margin(20,20,20,20))
什么也不做。 我尝试过通过
缩放
而不是
主题
来抑制
轴。勾选
轴。文本
,但没有什么区别

以下是一个可复制的示例:

example.data <- data.frame(x.var = rep(-2:2, 5),
                           y.var = rep(-2:2, each=5),
                           boolean.var = as.logical(sample(1:1000, 25) %% 2))

library(ggplot2)
library(tidyr)
example.data %>% ggplot(aes(fill = boolean.var)) +
    geom_rect(xmin = -1, xmax = 1, ymin = -1, ymax = 1) +
    scale_x_continuous(name = "(X Title)", position = "top", limits = c(-0.5,0.5)) +
    scale_y_continuous(name = "(Y Title)", position = "right", limits = c(-0.5,0.5)) +
    scale_fill_discrete(guide = FALSE) +
    facet_grid(y.var ~ x.var) +
    theme(panel.margin=unit(0.25 , "lines"),
          axis.title = element_text(size = 24, margin = margin(20, 20, 20, 20)),
          axis.ticks = element_blank(),
          axis.text = element_blank(),
          axis.title = element_text(margin = margin(20, 20, 20, 20)))
example.data%ggplot(aes(fill=boolean.var))+
几何误差(xmin=-1,xmax=1,ymin=-1,ymax=1)+
比例x连续(name=“(x Title)”,position=“top”,极限=c(-0.5,0.5))+
连续缩放(name=“(y Title)”,position=“right”,限制=c(-0.5,0.5))+
比例\填充\离散(导向=假)+
分面网格(y.var~x.var)+
主题(面板边距=单位(0.25,“线”),
axis.title=元素\文本(大小=24,边距=边距(20,20,20,20)),
axis.ticks=元素_blank(),
axis.text=元素_blank(),
axis.title=元素\文本(边距=边距(20,20,20,20)))
以下是输出:


在这种情况下,必须使用参数
axis.title.x.top
axis.title.y.right

单独指定轴标题处于默认(下、左)位置时有效的
轴标题.x
轴标题.y
,仍然不起作用

以下是完整示例,间距正确:

example.data <- data.frame(x.var = rep(-2:2, 5),
                           y.var = rep(-2:2, each=5),
                           boolean.var = as.logical(sample(1:1000, 25) %% 2))

library(ggplot2)
library(tidyr)
example.data %>% ggplot(aes(fill = boolean.var)) +
    geom_rect(xmin = -1, xmax = 1, ymin = -1, ymax = 1) +
    scale_x_continuous(name = "(X Title)", position = "top", limits = c(-0.5,0.5)) +
    scale_y_continuous(name = "(Y Title)", position = "right", limits = c(-0.5,0.5)) +
    scale_fill_discrete(guide = FALSE) +
    facet_grid(y.var ~ x.var) +
    theme(panel.margin=unit(0.25 , "lines"),
          axis.title = element_text(size = 24, margin = margin(20, 20, 20, 20)),
          axis.ticks = element_blank(),
          axis.text = element_blank(),
          axis.title.x.top = element_text(margin = margin(1, 0, 15, 0)),
          axis.title.y.right = element_text(margin = margin(0, 1, 0, 15)))
example.data%ggplot(aes(fill=boolean.var))+
几何误差(xmin=-1,xmax=1,ymin=-1,ymax=1)+
比例x连续(name=“(x Title)”,position=“top”,极限=c(-0.5,0.5))+
连续缩放(name=“(y Title)”,position=“right”,限制=c(-0.5,0.5))+
比例\填充\离散(导向=假)+
分面网格(y.var~x.var)+
主题(面板边距=单位(0.25,“线”),
axis.title=元素\文本(大小=24,边距=边距(20,20,20,20)),
axis.ticks=元素_blank(),
axis.text=元素_blank(),
axis.title.x.top=元素\文本(边距=边距(1,0,15,0)),
axis.title.y.right=元素\文本(边距=边距(0,1,0,15)))
这将提供以下输出: