好的,所以我有一个包含 2 个变量 X 和 Y 以及一个 ID 变量的数据集。我使用以下代码创建了一个完整的情节:
ggplot(data = X_Y) +
geom_point(mapping = aes(x = X, y = Y))+
geom_text_repel(mapping = aes(x = X, y = Y, label = ID))+
xlim(0,100)+
ylim(0,100)
我现在希望创建多个单独的图,一次只显示一个带有标签的数据点。
现在我可以只使用 geom_label 而不排斥并轻推标签来获得这个:
虽然这个情节还可以,但我想知道是否有任何方法可以保持将标签连接到点的线条,就像 ggrepel 所做的那样......
编辑
从第一个建议开始,当我尝试使用仅选择一个案例的排斥时,我得到以下情节:
ggplot(data = X_Y) +
geom_point(aes(x = X[4], y = Y[4]))+
geom_label_repel(aes(x = X[4], y = Y[4]),
label = "You are here",
min.segment.length = unit(0, 'lines'),
nudge_y = 6)+
labs(x = "X",y = "Y",title = "mytitle")+
scale_x_continuous(limits = c(0, 100)) +
scale_y_continuous(limits = c(0, 100))
解决
弄清楚了!我需要在 ggplot() 中指定我的数据仅为 X 和 Y 变量并限制为感兴趣的行。
像这样:
ggplot(data = X_Y[4,c(3,4)) +
geom_point(aes(x = X, y = Y))+
geom_label_repel(aes(x = X, y = Y),
label = "You are here",
min.segment.length = unit(0, 'lines'),
nudge_y = 6)+
labs(x = "X",y = "Y",title = "mytitle")+
scale_x_continuous(limits = c(0, 100)) +
scale_y_continuous(limits = c(0, 100))