2016-06-14 10 views
3

我在解決如何在嵌套結構中的ggplot上的點之間繪製線條時遇到問題。使用ggplot2在嵌套數據組內的圖形上連接點

我所擁有的是一組由3個不同的嵌套組分解的數據。 (Mutation),第二組然後將數據分成初始實驗(HiSeq)和複製實驗(MiSeq),而第三組(Grouping)根據它們來自的樣本類型對點進行顏色和形狀。

雖然我已經陷入困境,但是我想通過一條線將一對(突變)中的2個點(HiSeq/Miseq)連接起來,以便輕鬆鍛鍊哪兩個鏈接。我做了一個模擬了由此可以看出:

here, which shows roughly what I want to try and do 但是我無法工作,如何在兩個組(HiSeq/Miseq),而頂級組(突變)內停留做到這一點。

有沒有人有解決這個問題?下面可以看到我用來構建當前圖的數據片段和代碼。它可能最終會變得雜亂無章,但解決起來會很有用。

ggplot(test,aes(y=AR,x=Type,fill=Grouping,colour=Grouping,shape=Grouping)) + 
    geom_point(binaxis='y',stackdir='center',position=position_dodge(width = 0.2),size=7) + 
    facet_wrap(~ Mutation,nrow=1) + 
    xlab("") + 
    ylab("Allelic Ratio") + 
    theme_minimal(base_size=20) 

例如數據

structure(list(Mutation = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("chr1:51910329", 
"chr1:72951069"), class = "factor"), Type = structure(c(1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L), .Label = c("HiSeq", "MiSeq"), class = "factor"), Grouping = structure(c(3L, 
3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 
2L, 2L, 1L, 3L, 3L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 
1L, 1L, 1L), .Label = c("Offspring (M)", "Offspring (P)", "Proband" 
), class = "factor"), Name = c(288458773L, 288458773L, 423125012L, 
423125012L, 344991226L, 344991226L, 422977809L, 422977809L, 420753074L, 
420753074L, 351142406L, 351142406L, 422743921L, 422743921L, 425596544L, 
425596544L, 422595517L, 422595517L, 477342393L, 477342393L, 288458773L, 
288458773L, 423125012L, 423125012L, 344991226L, 344991226L, 422977809L, 
422977809L, 420753074L, 420753074L, 351142406L, 351142406L, 477342393L, 
477342393L, 480773638L, 480773638L), AR = c(0.38, 0.3, 0, 0, 
0.375, 0.545, 0.41, 0.388, 0.35, 0.42, 0, 0, NA, 0.59, NA, 0, 
0, 0.05, 0, 0, 0.1875, 0.078379734, 0.4, 0.505582473, 0, 0.002394493, 
0, 0.002023547, 0, 0.001600569, 0.6, 0.510240797, 0.6, 0.490997813, 
0, 0.001785424)), .Names = c("Mutation", "Type", "Grouping", 
"Name", "AR"), class = "data.frame", row.names = c(NA, -36L)) 
+0

數據已提供作爲dput()的輸出。 – aeonsim

回答

2

我想這可能是你想要的 - 看看geom_line,並瞭解其group美學:

ggplot(df, aes(x = Type, y = AR, fill = Grouping, color = Grouping, shape = Grouping)) + 
    geom_point(size = 5) + 
    geom_line(aes(group = Name)) + 
    facet_wrap(~ Mutation) 

Plot

+0

是的,就是這樣,我沒有意識到可以使用其他組像名稱在不同的geom中。 – aeonsim