将来自 DataFrame 的附加标签添加到具有现有标签的 facet_grid
Add additional labels from a DataFrame to a facet_grid with existing label
我有一组数据需要添加到标签级别。一个在分面网格内的单个图表上,一个来自一个小数据框,每个图表都有条目。
在下面的示例中,您会看到我可以毫无问题地添加到单个图表,但是当我尝试从 df 添加时,出现错误 -
Error in FUN(X[[i]], ...) : object 'wt' not found
准备:
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_line()
p <- p + facet_grid(. ~ cyl)
ann_text <- data.frame(mpg = 30,wt = 5,lab = "Text",
cyl = factor(8,levels = c("4","6","8")))
dfl <- data.frame(name = c('Jim',"Bob", "Sue"), r = c(-0.2, 0.5, -0.4))
单标签:
p + geom_text(data = ann_text,label = "Text")
多个标签:
p + geom_text(data = ann_text,label = "Text") +
geom_text(data = dfl, mpg = 30,wt = 5, aes(label = r))
我正在使用的方法是尝试重新创建我在 SO 和其他地方找到的其他示例,但我似乎遗漏了一些东西。
它在您的第二个代码中不起作用,因为在第二个 geom_text
中,您的 mpg
和 wt
不在 aes()
中。此外,这两个变量在您的 dfl
.
中不存在
如果您希望更好地控制 r
变量的标签,您可以在 dfl
中创建额外的列,指定 x
和 y
的位置标签,并在 geom_text(aes())
.
中使用这些变量
请注意,我修改了第二个 geom_text
中的 y
位置以避免“0,2”与“文本”重叠。
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_line()
p <- p + facet_grid(. ~ cyl)
ann_text <- data.frame(mpg = 30,wt = 5,lab = "Text",
cyl = factor(8,levels = c("4","6","8")))
dfl <- data.frame(name = c('Jim',"Bob", "Sue"), r = c(-0.2, 0.5, -0.4))
p + geom_text(data = ann_text,label = "Text") +
geom_text(data = dfl, aes(30, 4, label = r), check_overlap = T)
由 reprex package (v2.0.1)
于 2022-05-06 创建
我有一组数据需要添加到标签级别。一个在分面网格内的单个图表上,一个来自一个小数据框,每个图表都有条目。
在下面的示例中,您会看到我可以毫无问题地添加到单个图表,但是当我尝试从 df 添加时,出现错误 -
Error in FUN(X[[i]], ...) : object 'wt' not found
准备:
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_line()
p <- p + facet_grid(. ~ cyl)
ann_text <- data.frame(mpg = 30,wt = 5,lab = "Text",
cyl = factor(8,levels = c("4","6","8")))
dfl <- data.frame(name = c('Jim',"Bob", "Sue"), r = c(-0.2, 0.5, -0.4))
单标签:
p + geom_text(data = ann_text,label = "Text")
多个标签:
p + geom_text(data = ann_text,label = "Text") +
geom_text(data = dfl, mpg = 30,wt = 5, aes(label = r))
我正在使用的方法是尝试重新创建我在 SO 和其他地方找到的其他示例,但我似乎遗漏了一些东西。
它在您的第二个代码中不起作用,因为在第二个 geom_text
中,您的 mpg
和 wt
不在 aes()
中。此外,这两个变量在您的 dfl
.
如果您希望更好地控制 r
变量的标签,您可以在 dfl
中创建额外的列,指定 x
和 y
的位置标签,并在 geom_text(aes())
.
请注意,我修改了第二个 geom_text
中的 y
位置以避免“0,2”与“文本”重叠。
library(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt)) + geom_line()
p <- p + facet_grid(. ~ cyl)
ann_text <- data.frame(mpg = 30,wt = 5,lab = "Text",
cyl = factor(8,levels = c("4","6","8")))
dfl <- data.frame(name = c('Jim',"Bob", "Sue"), r = c(-0.2, 0.5, -0.4))
p + geom_text(data = ann_text,label = "Text") +
geom_text(data = dfl, aes(30, 4, label = r), check_overlap = T)
由 reprex package (v2.0.1)
于 2022-05-06 创建