以下のプロットで行っている色分けスキームに、別のレベルの複雑さを追加したいと思います。プロットされている各値が統計テストに合格したかどうかを説明したいと思います。したがって、ドットは、テストに合格した場合にのみパーセンタイルに基づいて色分けされます。それ以外の場合は、ドットを灰色にしたいと思います。
これが私の最初の投稿から受け取ったすべての役立つ提案の後のコードです ggplot のパーセンタイルに基づくカラーコードポイント(注: これはいくつかの作成されたデータですが、より多くのエントリを持つ実際のデータがあります:
dat <- data.frame(key = c("a1-a3", "a1-a2"), position = 1:100, fst = rlnorm(200, 0, 1), fet = rnorm(200, 0.24, 0.54))
#Get quantiles
quants <- quantile(dat$fst, c(0.95, 0.99))
dat$quant <- with(dat, factor(ifelse(fst < quants[1], 0,
ifelse(fst < quants[2], 1, 2))))
dat$fisher <- with(dat, factor(ifelse(fet > 1.30102999566398, 0, 1)))
dat$col <- with(dat, factor(ifelse(fet < 1.30102999566398, 3, quant)))
########theme set
theme_set(theme_bw(base_size = 10))
p1 <- ggplot(dat, aes(x=position, y=fst)) +
geom_point(aes(colour = col, size=0.2)) +
facet_wrap(~key, nrow = 1) +
scale_colour_manual(values = c("black", "blue", "red", "grey"), labels = c("0-95", "95-99", "99-100", "fail")) +
ylab(expression(F[ST])) +
xlab("Genomic Position (Mb)") +
scale_x_continuous(breaks=c(0, 1e+06, 2e+06, 3e+06, 4e+06), labels=c("0", "1", "2", "3", "4")) +
scale_y_continuous(limits=c(0,1)) +
theme(plot.background = element_blank(),
panel.background = element_blank(),
panel.border = element_blank(),
legend.position="none",
legend.title = element_blank()
)
tiff(Fstvalues_colourcode3.tiff", height=2.5, width=6.5, units="in", res = 300, pointsize="10")
p1
dev.off()
私の問題は次の行にあります: dat$col <- with(dat, factor(ifelse(fet < 1.30102999566398, 3, quant)))。上記の値を超える $fet 値 (またはフィッシャー == 0) がある場合は $quant の値を使用し、$fet 値が低い場合は新しい係数を作成したいと考えています。 (3)。データフレームを見ると、これとは違うことをしています。コメント/提案は大歓迎です!(私はコーディングにかなり慣れていないので、要因を扱うのは簡単ではありません!!)