R 如何将几何图形标签排斥映射到ggplot2中的颜色

R 如何将几何图形标签排斥映射到ggplot2中的颜色,r,ggplot2,R,Ggplot2,我做了一个数据集的箱线图。引入了一个新的人物,我想用geom_label_repel在现有的数据集上绘制这个人物。但是,不考虑颜色(可能是因为其数据集不同) 有没有办法用旧数据集中的颜色绘制Lisa library(ggplot2) library(ggrepel) xDF <- data.frame(age=c(20,22,25,27,44, 34, 28, 32) , sex = c("F", "F", "M", "F", "M", "M", "F"

我做了一个数据集的箱线图。引入了一个新的人物,我想用geom_label_repel在现有的数据集上绘制这个人物。但是,不考虑颜色(可能是因为其数据集不同)

有没有办法用旧数据集中的颜色绘制Lisa

library(ggplot2)
library(ggrepel)

xDF <- data.frame(age=c(20,22,25,27,44, 34, 28, 32) ,
                 sex = c("F", "F", "M", "F", "M", "M", "F", "M"),
                 Home_city =c("NY", "LA","NY", "LA", "LA", "LA","NY","NY") )

new_person <- data.frame(age=40, sex="F", Home_city="NY", name= "Lisa")

 ggplot(data=xDF, aes(x=Home_city, y=age, color=sex))+
     geom_boxplot()+
     geom_label_repel(data=new_person, aes(x=Home_city, y=age, color=sex, label=name),
               box.padding   = 0.35, 
               point.padding = 0.5,
               segment.color = 'grey50')
库(ggplot2)
图书馆(ggrepel)

xDF有两个问题,首先需要“回避”诸如boxplot之类的标签,这是使用
position=position\u dodge2(width=…)
完成的,并调整此参数内的宽度,因为使用geom\u repel()时,不清楚要将其放置在何处。例如,下面的代码适用于2个标签(M+F):

库(ggplot2)
图书馆(ggrepel)

new_2p有两个问题,首先你需要“闪避”像boxplot这样的标签,这是通过使用
position=position_闪避2(width=..)
来完成的,并且调整这个参数内的宽度,因为使用geom_repel()时,你不清楚你想把它放在哪里。例如,下面的代码适用于2个标签(M+F):

库(ggplot2)
图书馆(ggrepel)

新的2p我看到丽莎的名字是红色的,传说这是一个性别=女性。我错过了什么?丽莎在纽约的中轴。Lisa应该在NY轴的女性一侧进行裸体。我看到Lisa的名字被涂成红色,传说这是一个性别=女性。我错过了什么?丽莎在纽约的中轴。Lisa应该在NY轴的女性一侧进行裸体。
library(ggplot2)
library(ggrepel)

new_2p <- data.frame(age=c(40,40), sex=c("F","M"), 
Home_city="NY", name= "Lisa")

ggplot(data=xDF, aes(x=Home_city, y=age, color=sex))+
geom_boxplot()+
geom_label_repel(data=new_2p, aes(label=name),show.legend=FALSE,
               position = position_dodge2(width = 0.5),
               box.padding   = 0.35, 
               point.padding = 0.5,
               segment.color = 'grey50')
new_person$Home_city <- factor(new_person$Home_city,levels=levels(xDF$Home_city))

ggplot(data=xDF, aes(x=Home_city, y=age,color=sex))+
geom_boxplot()+
geom_label_repel(data=new_person, 
                 aes(x=as.numeric(Home_city)-0.15,label=name),
                 box.padding   = 0.35, 
                 point.padding = 0.5,
                 segment.color = 'grey50')