根据列变量向ggplot2点添加标签

adding labels to ggplot2 point based on column variables

我正在尝试根据另一列变量向我的散点图添加标签。

ggplot(differentrace, aes(x=DifferentRace, y=Parents)) + geom_point() + geom_text(label=rownames(differentrace))

我的table是

      Parents             Different Race 
1    1 UK born           2.32
2    Both UK born        2.58
3    Neither             2.24 

Output

这是我的输出,而不是 1、2、3 标签,我希望这些标签是 1 个英国出生、两个英国出生或都不是。另外我想稍微偏移标签以不阻碍数据点。

谢谢

R 不会将您的 Parents 列视为行名。相反,它只是另一列!所以这是代码:ggplot(differentrace, aes(x=DifferentRace, y=Parents)) + geom_point() + ggrepel::geom_text_repel(aes(label = Parents))。我使用 ggrepel::geom_text_repel 将文本标签从点移开。

此外,您必须将 label = Parents 包装在 aes() 调用中,因为您希望每个点都用来自同一数据帧的相应 Parent 进行标记;如果你不使用 aes(),R 不知道 Parent 指的是什么。

我不是 100% 确定你想做什么。所以,我交换了 x 和 y 轴,将 x 轴作为一个因子并使用 nudge_y 来调整文本。作为文本,使用变量 Parents 中的值。


library(ggplot2)

differentrace <- read.table(text = 
"
Parents             DifferentRace 
'1 UK born'           2.32
'Both UK born'        2.58
'Neither'             2.24 
", header=T)


ggplot(differentrace, aes(x=factor(Parents), y=DifferentRace, 
                      label = Parents)) + 
  geom_point() + 
  geom_text(nudge_y = .05) +
  labs(x = '', y ='Different Race')