gpt4 book ai didi

r - 使用带有单个绘图点的ggrepel/在标签和点之间添加线

转载 作者:行者123 更新时间:2023-12-02 01:14:06 27 4
gpt4 key购买 nike

好的,所以我有一个包含 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)

这会产生一个像这样的情节:
enter image description here

我现在希望创建一些单独的图,一次只显示一个带有标签的数据点。

现在我可以只使用 geom_label 而不排斥和轻推标签来得到这个:
enter image description here

虽然这个情节没问题,但我想知道是否有任何方法可以保持将标签连接到点的线条,就像 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))

enter image description here

已解决

弄清楚了!我需要在 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))

最佳答案

你当然仍然可以使用 geom_label_repel ,即使有一个点。为了确保绘制了一个线段,调整 min.segment.length arg。此参数设置从点到标签的最小距离以绘制线段,将其设置为 unit(0, 'lines')确保绘制每个线段:


library(ggplot2)
library(ggrepel)

ggplot(data.frame(x = 2, y = 3)) +
geom_point(aes(x, y)) +
geom_label_repel(aes(x, y),
label = 'You are here',
min.segment.length = unit(0, 'lines'),
nudge_y = .2) +
scale_x_continuous(limits = c(0, 3)) +
scale_y_continuous(limits = c(0, 4))

关于r - 使用带有单个绘图点的ggrepel/在标签和点之间添加线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43519959/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com