从 ggplot2 中的 Facet 中删除未使用的因子

发布于 2024-11-29 04:20:02 字数 508 浏览 0 评论 0原文

我正在尝试找出一种巧妙的方法来从 ggplot2 中的一个方面删除未使用的因素。这是一个最小的示例

# DUMMY DATA
mydf = data.frame(
  x = rpois(6, 25),
  y = LETTERS[1:6],
  cat = c(rep('AA', 3), rep('BB', 3)))

# PLOT IT!
p0 = ggplot(mydf, aes(x = x, y = y)) +
  geom_point() +
  facet_wrap(~ cat, ncol = 1)

从下图中,您可以看到因子 D、E 和 F 绘制在面 AA 中,尽管没有相应的数据。我想要的是一种从面 AA 中消除 {D, E, F} 的方法,以及类似地从面 BB 中消除 {A, B, C} 的方法。

有没有一种巧妙的方法来做到这一点,或者甚至黑客也可以接受。

在此处输入图像描述

I am trying to figure out a neat way to remove unused factors from a facet in ggplot2. Here is a minimal example

# DUMMY DATA
mydf = data.frame(
  x = rpois(6, 25),
  y = LETTERS[1:6],
  cat = c(rep('AA', 3), rep('BB', 3)))

# PLOT IT!
p0 = ggplot(mydf, aes(x = x, y = y)) +
  geom_point() +
  facet_wrap(~ cat, ncol = 1)

From the plot below, you can see that factors D, E and F are plotted in facet AA despite the fact that there is no corresponding data. What I want is for a way to eliminate {D, E, F} from facet AA and similarly {A, B, C} from facet BB.

Is there a neat way to do this, or even a hack would be acceptable.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

反差帅 2024-12-06 04:20:02

我认为您所需要的只是 scales = "free_y":

p0 = ggplot(mydf, aes(x = x, y = y)) +
  geom_point() +
  facet_wrap(~ cat, ncol = 1,scales = "free_y")

p0

在此处输入图像描述

I think all you need is scales = "free_y":

p0 = ggplot(mydf, aes(x = x, y = y)) +
  geom_point() +
  facet_wrap(~ cat, ncol = 1,scales = "free_y")

p0

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文