在ggplot中使用facet_grid时,如何为每个不同的面板指定不同的标签

时间:2016-09-13 16:26:15

标签: r ggplot2

是否可以在ggplot中的每个面板中指定不同的标签轴?

例如:

ggplot(diamonds, aes(x = carat, y = price)) + geom_point() + facet_grid(~cut)

在这个图中我们有五个面板,我想为每个面板指定我自己的标签。默认输出是为所有轴生成一个标签。

是否存在不涉及使用grid.arrange的解决方案,如下所示:

Modify x-axis labels in each facet

1 个答案:

答案 0 :(得分:0)

(我假设您指的是轴标题,而不是标签。)

原则上,没有。分面背后的哲学是它们共享共同的美学映射。但我们可以欺骗ggplot来获得我们想要的东西,例如:

ggplot(diamonds, aes(x = carat, y = price)) + 
  geom_point() + 
  facet_grid(~cut, switch = 'x') +
  theme(axis.title.x = element_blank(),
        strip.background = element_blank())

诀窍是将switch小平面条带到情节的底部。然后我们关闭条形背景和原始x轴标题,以创建单独轴标题的外观。

enter image description here

(您可能还想将strip.text.x = element_text(size = ??)更改为与y轴标题相同的大小。但是,似乎没有记录轴标题的默认大小。)