簡體   English   中英

用R中的ggplot2中的線連接來自兩個數據集的點

[英]Connecting points from two datasets with lines in ggplot2 in R

我想用垂直線連接來自兩個數據集的數據點。 應該垂直連接的點具有相同的標識符(V),但我希望將數據集分開。

到目前為止,這是我的身材:

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()做到這一點(因此每個數據集的其他格式可以分開)?

正如bouncyball指出的那樣,您可以將單獨的數據集( d1d2 d merge )與geom_segment一起geom_segment

請參閱以下內容:

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) +
  geom_point(data = d2, size = 5, aes(fill = V), pch = 22, colour = "black") +
  geom_segment(data = merge(d1, d2, by = 'V'), 
               aes(x = S.x, xend = S.y, y = O.x, yend = O.y)) +
  guides(fill = FALSE)

產生:

在此處輸入圖片說明

您也可以添加主題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM