如何只删除一些方面的标签?
How to remove only some facet labels?
使用facet_wrap
,是否可以仅删除部分方面标签?
在下面的示例中,我希望 Species 标签仅出现在每行的第一列中。我知道我可以使用 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)
我不知道我是否理解得很好,但我会尝试:
您可以使用 facet_grid 而不是 facet_wrap
这是代码:
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_grid(Species~var)
这是结果:
一点也不完美,但我会 post 这个希望总比没有好。
使用 as_labeller()
和 labeller()
可能会得到您需要的东西。
更新
最简单的解决方案是将 Species
和 var
拆分为两个 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)))
数据示例:
library(tidyr)
library(ggplot2)
dat <- iris %>%
gather(var, val, Sepal.Length:Petal.Width)
使用facet_wrap
,是否可以仅删除部分方面标签?
在下面的示例中,我希望 Species 标签仅出现在每行的第一列中。我知道我可以使用 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)
我不知道我是否理解得很好,但我会尝试:
您可以使用 facet_grid 而不是 facet_wrap
这是代码:
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_grid(Species~var)
这是结果:
一点也不完美,但我会 post 这个希望总比没有好。
使用 as_labeller()
和 labeller()
可能会得到您需要的东西。
更新
最简单的解决方案是将 Species
和 var
拆分为两个 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)))
数据示例:
library(tidyr)
library(ggplot2)
dat <- iris %>%
gather(var, val, Sepal.Length:Petal.Width)