Я хочу подключить данные из двух наборов данных с вертикальной линией. Точки, которые должны быть связаны по вертикали, имеют один и тот же идентификатор (V), но я надеялся сохранить отдельные наборы данных.Соединительные точки из двух наборов данных с линиями в ggplot2 в R
Вот моя фигура до сих пор:
d1 <- data.frame (V = c("A", "B", "C", "D", "E", "F", "G", "H"),
O = c(9,2.5,7,8,7,6,7,7.5),
S = c(6,5,3,5,3,4,5,6))
d2 <- data.frame (V = c("A", "B", "C", "D"),
O = c(10,3,7.5,8.2),
S = c(6,5,3,5))
scaleFUN <- function(x) sprintf("%.0f", x)
p<-ggplot(data=d1, aes(x=S, y=O), group=factor(V), shape=V) +
geom_point(size = 5, aes(fill=V),pch=21, alpha = 0.35)+
theme_bw()+
geom_point(data = d2, size=5, aes(fill=V), pch=22,colour="black")+
theme(legend.title=element_blank())+
xlab(expression(italic("S"))) + theme(text = element_text(size=25))+
ylab(expression(italic("O")))+ theme(text = element_text(size=25))+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
theme(axis.text.y=element_text(angle=90, hjust=1))+
theme(legend.position="none") # remove legend
print(p)
Так что окончательная цифра будет выглядеть примерно так: Могу ли я сделать это с geom_line() без объединения наборов данных (так другое форматирование может быть отдельно для каждый набор данных)?
Вы должны «объединить»: добавление 'geom_segment (data = merge (d1, d2, by = 'V'), aes (x = Sx, xend = Sy, y = Ox, yend = Oy))' на ваш сюжет может быть началом. – bouncyball
Хорошо, что работает отлично! – lily23