在ggplot 2中在各個方面注釋我想用以下代碼對情節的最后一個方面進行注釋:library(ggplot2)p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()p <- p + facet_grid(. ~ cyl)p <- p + annotate("text", label = "Test", size = 4, x = 15, y = 5)print(p)但這段代碼在每個方面都對文本進行了注釋。如果你能指導我如何只從一個方面得到注釋的文本,我將不勝感激。提前謝謝。
3 回答

Cats萌萌
TA貢獻1805條經驗 獲得超9個贊
ann_text <- data.frame(mpg = 15,wt = 5,lab = "Text", cyl = factor(8,levels = c("4","6","8")))p + geom_text(data = ann_text,label = "Text")

jeck貓
TA貢獻1909條經驗 獲得超7個贊
library(ggplot2)p <- ggplot(mtcars, aes(mpg, wt)) + geom_point() + facet_grid(. ~ cyl) + theme(panel.spacing = unit(1, "lines"))p
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)
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))
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
若要將文本定位到面板的邊緣,請執行以下操作。 你可以用 hjust
和 vjust
若要調整文本的合理性,請執行以下操作。 文本標簽數據框架 dat_text
應該有一個與您的 facet_grid()
或 facet_wrap()
.

烙印99
TA貢獻1829條經驗 獲得超13個贊
ann_text <- data.frame(mpg = 15,wt = 5, cyl = factor(8,levels = c("4","6","8")))p + geom_text(data = ann_text,label = "Text" )
ann_text <- data.frame(mpg = c(14,15),wt = c(4,5),lab=c("text1","text2"), cyl = factor(c(6,8),levels = c("4","6","8")))p + geom_text(data = ann_text,aes(label =lab) )
- 3 回答
- 0 關注
- 724 瀏覽
添加回答
舉報
0/150
提交
取消