私はよくグラデーションをニースにするggplot2
を使用します( 例についてはここをクリック )。 baseで作業する必要があり、scales
を使用して色のグラデーションを作成することもできますが、どのように使用するかについては大したことはありません。基本的な目標は、x色からy色の範囲のn色のパレットを生成することです。ただし、ソリューションはベースで動作する必要があります。これは出発点でしたが、nを入力する場所がありません。
scale_colour_gradientn(colours=c("red", "blue"))
私はよく知っています:
brewer.pal(8, "Spectral")
RColorBrewer
から。 ggplot2
がグラデーションを処理する方法に似たアプローチをもっと探しています。これらの2つの色があり、途中で15色が必要です。どうやってやるの?
colorRampPalette
はあなたの友達かもしれません:
colfunc <- colorRampPalette(c("black", "white"))
colfunc(10)
# [1] "#000000" "#1C1C1C" "#383838" "#555555" "#717171" "#8D8D8D" "#AAAAAA"
# [8] "#C6C6C6" "#E2E2E2" "#FFFFFF"
そして、それが機能することを示すために:
plot(rep(1,10),col=colfunc(10),pch=19,cex=3)
前の回答を拡張するだけで、colorRampPalette
は3色以上を処理できます。
したがって、より拡張された「ヒートマップ」タイプの外観については、次のことができます。
colfunc<-colorRampPalette(c("red","yellow","springgreen","royalblue"))
plot(rep(1,50),col=(colfunc(50)), pch=19,cex=2)
結果の画像: