2017-02-22 27 views
0

に接続する2つのデータセットのデータポイントを垂直線で接続したいと考えています。垂直に接続する必要があるポイントは同じ識別子(V)を持っていますが、データセットを別々に保つことを望んでいました。 )Figureは は、私は(geom_lineでこれを行うことができ、データセットを組み合わせることなく、(ので、他の書式は、のために分離することができます:だから、最終的な数字は次のようになりますggplot2の2つのデータセットのポイントを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) 

:ここ

は、これまでのところ、私のフィギュアです各データセット)?

+1

'geom_segment(data = merge(d1、d2、by = 'V')、aes(x = Sx、xend = Sy、y = Ox、yend = Oy))'をあなたのプロットはスタートかもしれません。 – bouncyball

+0

これは完璧に動作するようです。 – lily23

答えて

0

バーンシーボールが指摘しているように、別のデータセット(mergedからd1d2)を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) 

得どちら:

enter image description here

あなたはまた、あなたのテーマを追加することができます

は以下を参照してください。

関連する問題