r - 如何仅删除一些方面标签?

标签 r ggplot2 facet-wrap

使用facet_wrap,是否可以仅删除一些构面标签? 在下面的示例中,我希望物种标签仅出现在每行的第一列中。我知道我可以使用 labeller 功能,但不知道如何更改单个标签。

data(iris)
library(tidyr)
library(ggplot2)

dat <- iris %>%
  gather(var, val, Sepal.Length:Petal.Width) 

ggplot(dat) +
  geom_point(aes(x = 1, y = val)) +
  facet_wrap(Species~var)

enter image description here

最佳答案

它并不完美,但我发布此内容希望它仍然比没有好。

使用 as_labeller()labeller() 可能会满足您的需求。

更新

最简单的解决方案是将 Speciesvar 拆分为两个 labellers 函数。

facet_labeller_top <- function(variable, value) {
  c(
    "Setosa", 
    "",
    "",
    "",
    "Versicolor", 
    "",
    "",
    "",
    "Virginica", 
    "",
    "",
    ""
  )
}

facet_labeller_bottom <- function(variable, value) {
  c(
    "Petal.Length", 
    "Petal.Width",
    "Sepal.Length",
    "Sepal.Width",
    "Petal.Length", 
    "Petal.Width",
    "Sepal.Length",
    "Sepal.Width",
    "Petal.Length", 
    "Petal.Width",
    "Sepal.Length",
    "Sepal.Width"
  )
}

结果:

ggplot(dat) +
  geom_point(aes(x = 1, y = val)) +
  facet_wrap(Species~var, labeller = labeller(Species=as_labeller(facet_labeller_top),
                                              var = as_labeller(facet_labeller_bottom)))

enter image description here

数据示例:

library(tidyr)
library(ggplot2)

dat <- iris %>%
  gather(var, val, Sepal.Length:Petal.Width) 

关于r - 如何仅删除一些方面标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54178285/

相关文章:

javascript - 以交互方式向绘图 R 添加点,无需重绘背景图

r - 如何四舍五入矩阵中的所有值?

sql - 通过 R 在 SQL 查询中粘贴值

r - ggplot2刻度填充梯度与离散上限

R:如何使用 ggplot2 组合两个相关矩阵

r - ggplot2 箱线图 : horizontal bar at median?

r - 使用 facet wrap 在 R 中映射不同状态

r - ggplot2构面标签中的表达式

R 中的反向堆积条形图导致奇怪的定位

r - ggplot 在多面图上有一些错误。尝试使用多面 ggplot 协调 y 值