在 facet_grid 中控制间距和标签,ggplot
Control spacing and labels in facet_grid, ggplot
我正在尝试控制由 facet_grid 形成的 ggplot 图表中的间距和标签。我做了一些研究,我使用的论据我认为至少可以帮助我实现第一个 objective 但结果不是我所期望的。
对于一个可重现的示例,我使用 mtcars 数据集(基础 R)并提供了代码输出的图像,其中我指出了我想要更改的内容。
我们将不胜感激您的建议。
data(mtcars)
setDT(mtcars)
mtcars[, ":="(vs = as.factor(vs), am = as.factor(am), gear = as.factor(gear), carb = as.factor(carb))]
ggplot (mtcars,
aes(x= disp , y = hp , colour = carb)) +
geom_point (size = 2) + facet_grid ( gear ~ vs * am , margins = TRUE) +
xlab('disp') + ylab('hp') +
theme(panel.spacing.x=unit(2, "lines"), panel.spacing.y=unit(2, "lines"))+
theme_economist() + theme(plot.margin = unit(c(1, 1, 1, 1), "lines"))
您可以在theme
中使用参数panel.spacing
定义面板之间的space。 theme_economist
正在改变它。默认情况下,面板之间有 spaces。
您还可以添加标签函数 label_both
以便在每个面板标签上显示变量名称。
ggplot (mtcars,
aes(x= disp , y = hp , colour = carb)) +
geom_point (size = 2) + facet_grid ( gear ~ vs * am , margins = TRUE, labeller = label_both) +
xlab('disp') + ylab('hp') +
theme(panel.spacing.x=unit(2, "lines"), panel.spacing.y=unit(2, "lines"))+
theme_economist() + theme(plot.margin = unit(c(1, 1, 1, 1), "lines"), panel.spacing=unit(2,"lines"))
我正在尝试控制由 facet_grid 形成的 ggplot 图表中的间距和标签。我做了一些研究,我使用的论据我认为至少可以帮助我实现第一个 objective 但结果不是我所期望的。
对于一个可重现的示例,我使用 mtcars 数据集(基础 R)并提供了代码输出的图像,其中我指出了我想要更改的内容。
我们将不胜感激您的建议。
data(mtcars)
setDT(mtcars)
mtcars[, ":="(vs = as.factor(vs), am = as.factor(am), gear = as.factor(gear), carb = as.factor(carb))]
ggplot (mtcars,
aes(x= disp , y = hp , colour = carb)) +
geom_point (size = 2) + facet_grid ( gear ~ vs * am , margins = TRUE) +
xlab('disp') + ylab('hp') +
theme(panel.spacing.x=unit(2, "lines"), panel.spacing.y=unit(2, "lines"))+
theme_economist() + theme(plot.margin = unit(c(1, 1, 1, 1), "lines"))
您可以在theme
中使用参数panel.spacing
定义面板之间的space。 theme_economist
正在改变它。默认情况下,面板之间有 spaces。
您还可以添加标签函数 label_both
以便在每个面板标签上显示变量名称。
ggplot (mtcars,
aes(x= disp , y = hp , colour = carb)) +
geom_point (size = 2) + facet_grid ( gear ~ vs * am , margins = TRUE, labeller = label_both) +
xlab('disp') + ylab('hp') +
theme(panel.spacing.x=unit(2, "lines"), panel.spacing.y=unit(2, "lines"))+
theme_economist() + theme(plot.margin = unit(c(1, 1, 1, 1), "lines"), panel.spacing=unit(2,"lines"))