2016-04-11 14 views
1

私は、複数のクラス(この例では3クラス)のデータを持っていますが、遺伝子型、早期表現型および後期表現型ステージの3つの時点に基づいてクラスが異なります。ここで3つのカラムを持つトランジションプロットの作成

はサンプルデータです:

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") 

私は一般的に「移行プロット」と呼ばれるものを生成したいと思います。私が得ている最も近いがこれです:

library(Gmisc) 
transitionPlot(table(df[,1:2]), txt_start_clr = "black", txt_end_clr = "black", fill_start_box = "white", fill_end_box = "white") 

...このプロット作成され: enter image description here

をしかし、私はこのプロットは持っていないという二つのことを達成しようとしています:

  1. 私は3つ以上の列、この例では3つの列:遺伝子型、早期表現型、および後期表現型を必要とします。この例では、(私はないRに、Photoshopでこれを達成し) 代わりに2つのボックスを接続異なる重みを有する単一の矢印のenter image description here

  2. 、私はむしろジッタ/透明性を有する複数の矢印を有するであろう。このようになります。各矢印は、個々の観測を表すことになり、そしてこのようなものと思われる場所: enter image description here

任意の提案を?

P.S.私は本当にボックスのカーブしたエッジや派手なシャドウについては気にしません。

+0

[Gmisc :: Transition-class](https://cran.r-project.org/web/packages/Gmisc/vignettes/Transition-class.html) –

答えて

3
  1. 私は、私はむしろ、複数の矢印
を持つことになり、この例では3つの列の代わりに2つの ボックスを接続する異なる重みを持つ単一の矢印の
  • 、以上の2つの列をしたいです

    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]) 
    

    enter image description here

  • +0

    を使用すると、2つ以上の列を使用することができます。前に 'igraph'を聞いたことがない、有望に見えます。紡錘形の矢印をあまり圧倒しないように変更する方法はありますか?実際のデータには1000以上の観測値がありますので、私はむしろアルファ/透明度を採用したいと思っています(上記の私のサンプル画像を追加しました) – Oposum

    +0

    '?igraph.plotting'を見てください - たとえば、edge.arrow.size =矢印サイズを小さくするために「0.5」を選択する。アルファ(例えば「#99999966」)を含む「edge.color」が機能しないように思われます。 – lukeA

    +0

    アルファなしで見ると、ソリッドスピンドルのように見えます – Oposum

    関連する問題