【问题标题】:How to specify different labels for each distinct panels when using facet_grid in ggplot在ggplot中使用facet_grid时如何为每个不同的面板指定不同的标签
【发布时间】:2016-09-13 16:26:14
【问题描述】:

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

例如:

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

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

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

Modify x-axis labels in each facet

【问题讨论】:

  • 可能直接编辑 grobs...
  • 在链接问题中使用 x 轴上的分类变量,您可以将标签设为新变量,将其映射到 x 轴,然后使用 scales = "free"

标签: r ggplot2


【解决方案1】:

(我假设您指的是轴 titles,而不是 labels。)

出于原则,不。刻面背后的哲学是它们共享共同的美学映射。但是我们可以欺骗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 轴标题,以创建单独的轴标题的外观。

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

【讨论】:

  • 不错的解决方案。我实际上希望更改标签。这些方面共享一个美学映射,但映射的解释在面板之间发生变化,我想通过标签的变化来表明这一点。
  • 示例中的标签是 1 到 5。不清楚你想要什么。
猜你喜欢
  • 1970-01-01
  • 2018-08-12
  • 1970-01-01
  • 2018-11-03
  • 2014-06-28
  • 1970-01-01
  • 2011-12-15
  • 1970-01-01
相关资源
最近更新 更多