Как подавить некоторые (но не все) линии сегмента в ggrepel в R
Я использую ggplot2 для построения графиков двух разных групп данных. У меня слишком много точек, и поэтому, когда я их обозначаю, они перекрываются. Это заставило меня использовать ggrepel с ggplot2. Мне нужно изменить размер и цвет этих групп, чего я смог достичь, но я не могу подавить линии сегмента от точки к метке для одной группы (одна группа не имеет точек вообще). Это, вероятно, легче понять с помощью моего кода:
labels=c("a1","a2","a3","a4","a5","b1","b2","b3","b4","b5")
x<-c(4.7,4.6,-11.0,6.2,11.4,6.1,6.1, -9.9,-9.7,-0.3)
y<-c(13.7,13.6,7.6,9.5,-5.6,10.6,10.6,5.8,9.0,0.1)
mydata<-data.frame(labels,x,y)
mydata$color <- "firebrick"
for(i in 1:5)mydata[i,4]="darkgray"
mydata$segment <- "firebrick"
for(i in 1:5)mydata[i,5]=NA
mydata$size <- 8
for(i in 1:5)mydata[i,6]=5
Что приводит к фрейму данных:
> mydata
labels x y color segment size
1 a1 4.7 13.7 darkgray NA 5
2 a2 4.6 13.6 darkgray NA 5
3 a3 -11.0 7.6 darkgray NA 5
4 a4 6.2 9.5 darkgray NA 5
5 a5 11.4 -5.6 darkgray NA 5
6 b1 6.1 10.6 firebrick firebrick 8
7 b2 6.1 10.6 firebrick firebrick 8
8 b3 -9.9 5.8 firebrick firebrick 8
9 b4 -9.7 9.0 firebrick firebrick 8
10 b5 -0.3 0.1 firebrick firebrick 8
Код ниже для графика:
ggplot(data=mydata, aes(x=x, y=y)) + geom_point(data=mydata[6:10,],color="firebrick") +
geom_text_repel(data=mydata,aes(label=labels),color=mydata$color,show.legend=FALSE,
size=mydata$size,
segment.color=mydata$segment) +
geom_hline(yintercept=0, color="black", size=0.5)+geom_vline(xintercept=0,color="black",size=0.5)+
theme(panel.background=element_rect(color="black",fill="white"),panel.grid.major.y=element_blank(),panel.grid.minor.y=element_blank(),
panel.grid.major.x=element_blank(),panel.grid.minor.x=element_blank())
Там вполне может быть более простой способ сделать это. Мне нужны линии для красных меток b1-b5, но не для a1-a5. Получившийся сюжет здесь
Как всегда, любые идеи очень ценятся! Я буду обновлять, если я найду решение.
РЕДАКТИРОВАТЬ: что мне нужно из этого графика:
- a1-a5 меньше, серый, без точек (только метки) и без линий, соединяющих метки с точками (все это достигается с помощью приведенного выше кода)
- b1-b5 больше, красный, имеет точки и метки и имеет линии, соединяющие точки с метками (кажется, я не могу получить линии сегментов, соединяющиеся с точками, одновременно подавляя их для a1-a5)
Спасибо дж