我无法使用paired
绘制ggplot2
数据。
所以,我有一个配对(idpair
)个体(id
)及其各自序列的数据库,例如
idpair id 1 2 3 4 5 6 7 8 9 10
1 1 1 d b d a c a d d a b
2 1 2 e d a c c d a b a c
3 2 3 e a a a a c d b c e
4 2 4 d d b c d e a a a b
...
我想要的是绘制所有序列,但在某种程度上我们可以在视觉上区分这对序列。
我想过使用网格,例如:facet_grid(idpair~.)
。我的问题看起来像这样:
如何将两个序列并排绘制,消除由另一个idpair
引起的“真空”?
非常欢迎任何关于配对数据的替代绘图的建议。
我的代码
library(ggplot2)
library(dplyr)
library(reshape2)
dtmelt = dt %>% melt(id.vars = c('idpair', 'id')) %>% arrange(idpair, id, variable)
dtmelt %>% ggplot(aes(y = id, x = variable, fill = value)) +
geom_tile() + scale_fill_brewer(palette = 'Set3') +
facet_grid(idpair~.) + theme(legend.position = "none")
生成数据
dt = as.data.frame( cbind( sort( rep(1:10, 2) ) , 1:20, replicate(10, sample(letters[1:5], 20, replace = T)) ) )
colnames(dt) = c('idpair', 'id', 1:10)