我的数据由多个类(在本例中为三个类)的测试对象组成,但类别因三个时间点而异:基因型,早期表型和晚期表型阶段。
以下是示例数据:
genotype<-cbind(c(rep("A",100),rep("B",100),rep("C",100)))
early_phenotype<-cbind(c(rep("A",75),rep("B",75),rep("C",75),rep("A",75)))
late_phenotype<-cbind(c(rep("A",50),rep("B",100),rep("C",100),rep("A",50)))
df<-cbind(genotype,early_phenotype,late_phenotype)
df<-as.data.frame(df)
colnames(df)<-c("genotype","early_phenotype","late_phenotype")
我想制作通常所说的过渡情节&#34;。我得到的最接近的是:
library(Gmisc)
transitionPlot(table(df[,1:2]), txt_start_clr = "black", txt_end_clr = "black", fill_start_box = "white", fill_end_box = "white")
但我正在努力实现这个情节所没有的两件事:
答案 0 :(得分:3)
- 我想要两列以上,在本例中为三列
- 而不是连接两个不同重量的单个箭头 盒子,我宁愿有多个箭头
醇>
也许尝试使用igraph
:
m <- sapply(1:3, function(x) paste0(df[, x], x))
el <- rbind(m[, 1:2], m[, 2:3])
library(igraph)
g <- graph_from_edgelist(el)
coords <- layout.norm(t(sapply(strsplit(V(g)$name, ""), function(x) as.numeric(c(-match(x[1], LETTERS), x[2])))))
plot(g, layout=coords[, 2:1])