下面是沒有文本注釋的情節(jié):
library(ggplot2)p <- ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
facet_grid(. ~ cyl) +
theme(panel.spacing = unit(1, "lines"))p
讓我們創(chuàng)建一個(gè)額外的數(shù)據(jù)框架來(lái)保存文本注釋:
dat_text <- data.frame(
label = c("4 cylinders", "6 cylinders", "8 cylinders"),
cyl = c(4, 6, 8))p + geom_text(
data = dat_text,
mapping = aes(x = -Inf, y = -Inf, label = label),
hjust = -0.1,
vjust = -1)
或者,我們可以手動(dòng)指定每個(gè)標(biāo)簽的位置:
dat_text <- data.frame(
label = c("4 cylinders", "6 cylinders", "8 cylinders"),
cyl = c(4, 6, 8),
x = c(20, 27.5, 25),
y = c(4, 4, 4.5))p + geom_text(
data = dat_text,
mapping = aes(x = x, y = y, label = label))
我們還可以將情節(jié)分為兩個(gè)方面:
dat_text <- data.frame(
cyl = c(4, 6, 8, 4, 6, 8),
am = c(0, 0, 0, 1, 1, 1))dat_text$label <- sprintf(
"%s, %s cylinders",
ifelse(dat_text$am == 0, "automatic", "manual"),
dat_text$cyl)p +
facet_grid(am ~ cyl) +
geom_text(
size = 5,
data = dat_text,
mapping = aes(x = Inf, y = Inf, label = label),
hjust = 1.05,
vjust = 1.5
)
注:
- 你可以用
-Inf
和Inf
若要將文本定位到面板的邊緣,請(qǐng)執(zhí)行以下操作。 - 你可以用
hjust
和vjust
若要調(diào)整文本的合理性,請(qǐng)執(zhí)行以下操作。 - 文本標(biāo)簽數(shù)據(jù)框架
dat_text
應(yīng)該有一個(gè)與您的facet_grid()
或facet_wrap()
.