我在解決如何在嵌套結構中的ggplot
上的點之間繪製線條時遇到問題。使用ggplot2在嵌套數據組內的圖形上連接點
我所擁有的是一組由3個不同的嵌套組分解的數據。 (Mutation
),第二組然後將數據分成初始實驗(HiSeq
)和複製實驗(MiSeq
),而第三組(Grouping
)根據它們來自的樣本類型對點進行顏色和形狀。
雖然我已經陷入困境,但是我想通過一條線將一對(突變)中的2個點(HiSeq/Miseq)連接起來,以便輕鬆鍛鍊哪兩個鏈接。我做了一個模擬了由此可以看出:
但是我無法工作,如何在兩個組(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))
數據已提供作爲dput()的輸出。 – aeonsim