我尝试使用geom_text_repel
注解ggplot
中的行。但是,某些行的注解不显示。如何解决这个问题?
下面是一个可重复的例子:
library(ggplot2)
library(ggrepel)
df.1 <-
data.frame(
id = rep(c(1, 2, 3),each = 4),
time = c(1, 2, 3, 4),
x = c(1, 2, 3, 4),
y = c(10, 23, 25, 28),
z = c(2, 4, NA, NA)
)
df.long <- df.1 %>% pivot_longer(cols = c(x, y, z), names_to = "class", values_to = "score")
ggplot(df.long, aes(x = time, y = score, col = class, group = class)) +
geom_line() +
geom_point() +
geom_text_repel(
data = subset(df.long, time == max(time)),
aes(label = class),
size = 2,
point.padding = 0.2,
nudge_x = .3,
segment.curvature = -1e-20,
arrow = arrow(length = unit(0.015, "npc"))
)
字符串
x1c 0d1x z
的注解没有显示。另外,我如何将注解减少到每行一个?现在它有三个。非常感谢!
1条答案
按热度按时间cigdeys31#
你必须过滤最大值
time
的数据,每个class
有一个非缺失值。此外,由于每个time
和class
有多个值(每个id
一个),你会得到多个标签。因此,如果你只有一个标签,使用例如dplyr::distinct
来消除重复:字符串
的数据