2

ggplot を使用して単純なフィールド マップを作成しようとしています。フィールド デザインは次のような形式です。

design <- data.frame(Genotype=rep(LETTERS[1:4], 4), Status=rep(c("P","N"), each=8),
                 Density=rep(c(40,80), each=4),
                 Row=rep(seq(1:4)),
                 Range=rep(1:4, each=4))

塗りつぶしが にマップされGenotype、他のもの (理想的には輝度) が にマップされたマップが必要Densityです。私が最も近いのは を使用することですalphaが、非常に低いアルファから非常に高いアルファになるため、理想的ではありません。非常に低いアルファでは、塗りつぶしが何であるかを確認するのは困難です。

現在、私のプロットのコードは次のとおりです。

d.p <- ggplot(design, aes(Row, Range))
d.p1 <- d.p + geom_tile(aes(fill=Genotype, alpha=Density))

いじりましscale_fill_hueたが、賢明なことは何も起こらないようです。

前もって感謝します。

編集

申し訳ありませんが、上記で修正した再現可能な例を作成したときに、現実世界の問題の基本的な側面を省略していたことに気付きました。

以下で指摘されているように、alphaは密度にマッピングできますが、 も区別する必要がありStatusます。ハッチングは明らかな解決策のように思えますが、それが選択肢ではないことは理解しています。同様の色 (水色、紺色など) を手動で割り当てることもできますが、これを自動化して、どのようなフィールド デザインでも使用できるようにしたいと考えています。

任意のアイデアをいただければ幸いです。混乱を招いて申し訳ありません。

4

1 に答える 1

4

冗長な情報が含まれているという事実を無視し、これを提供しRowます。Genotype

ggplot(design,aes(x = Row,y = Range)) + 
    geom_tile(fill = "transparent",colour = "black") +
    geom_point(aes(colour = Genotype,size = factor(Density),shape = Status)) + 
    scale_size_manual(values = c(3,6))

ここに画像の説明を入力

しかし、これもできない理由があると何かが教えてくれます。

于 2012-05-30T04:12:28.527 に答える