私はこのようなデータフレームを持っています
BP R2 LOG10
96162057 0.2118000 2.66514431
96162096 0.0124700 0.31749391
96162281 0.0008941 0.07012148
96163560 0.5011000 2.48505399
96163638 0.8702000 3.37778598
bPをLOG10に対してプロットし、R2で点に色を付けたいと思います。 R2は、0から1までの連続値です。
myplot <- read.cvs("mytable.csv",head=TRUE)
attach(myplot)
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point()
ここまでは順調ですね。ただし、R2の色を、手動で選択した間隔と色で表示したいと思います(離散値がある場合)。
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point() +
scale_color_manual(breaks= c("1","0.8","0.6","0.4","0.2","0"),
values = c("red","yellow","green","lightblue","darkblue"))
Error: Continuous value supplied to discrete scale
これはきれいに見えますが、私はむしろ自分で色を設定したいと思います。
ggplot(myplot,aes(BP,LOG10, color=R2)) + geom_point(shape=1) +
scale_colour_gradientn(colours = Rainbow(10))
では、連続値(1-0.8、0.8-0.6、0.6-0.4、0.4-0.2、0.2-0)から手動で間隔を選択し、好みに合わせて色を付けるにはどうすればよいですか(赤、黄、緑、明、紺) ?色の間の滑らかなグラデーションはクールですが、重要ではありません。
scale_colour_gradientn()
を使用してから、独自のcolours=
およびvalues=
を指定できます。値は各色の間隔を示します。
ggplot(myplot,aes(BP,LOG10, color = R2)) + geom_point() +
scale_colour_gradientn(colours = c("red","yellow","green","lightblue","darkblue"),
values = c(1.0,0.8,0.6,0.4,0.2,0))
4年後、この投稿へのコメント:「値」は、変数値を0から1の間でマップし、0が最小値、1が最大値であることに注意することが重要です。この例では、0から1の変数の値に偶然に適合します。