山羊の午後

研究関係の備忘録。

Rの色指定いろいろ

例:棒グラフ barplot(col=色指定)

f:id:yk_uminami:20160422005431p:plain

#データ入力
group<-c(10,20,30) #群
m.data<-c(0.079,0.102,0.146) #平均値
sd.data<-c(0.022,0.031,0.026) #標準偏差

#y軸の最大値を指定
yRoof=round(max(m.data+sd.data)*1.3, 1)   

#棒グラフを描く
graph1<-barplot(m.data, names=group, ylim=c(0,yRoof),
        col=c("royalblue3","brown3",8)) #色の指定

#上向きのエラーバー
arrows(graph1,m.data,graph1,m.data+sd.data,angle=90,length=0.1,lwd=2)

#下向きのエラーバー
arrows(graph1,m.data,graph1,m.data-sd.data,angle=90, length=0.1,lwd=2)

#x軸を描く
axis(1, graph1, labels=F) 

#タイトルをつける
title("Color samples")

色の指定法: 単色 col=X、 複数色 col=c(X,X,X)

  • 複数に色分けするときは、ベクトルc(x,x,x)を指定する。
  • ベクトルの指定は前から順番に使われる。指定数がデータ数に足りないときは、先頭に戻って繰り返される。

col=数字:基本色のセット。

0 1 2 3 4 5 6 7 8
シアン マゼンダ
white black red green blue cyan magenta yellow grey

col="色名"

  • 基本的な色名はそのまま指定すれば使える。
    • 例)pink, orange, violet, skyblue
  • エクセルっぽい青 col="royalblue3"
  • エクセルっぽい赤 col="brown3"
使える色名をみる
  • colors() # 657色ある
demo(colors) #色名をその色で表示。
  • いろいろ見比べたいとき
x=c(1:5) #1から5番目の色
barplot(rep(1,length(x)),names=colors()[x],col=colors()[x])
#colorsを色名とともに表示する。xに任意の数をいれる。

col=HEX(16進数のカラーコード)

透過色をつかう

  • col=HEX(16進数色コード)+透過度(00~FF)
  • 例 col="#FF00007F" #赤の透過色、約50パーセント
透過度% 30 50 60 70
≒16進数 4C 7F 99 B2
  • 図を重ねたりするときに便利。
注意
透過色をつかうと、図をファイルへ保存する時、印刷する時にエラーが起きることがある。

グレースケールを使う

  • gray()に0-1の間を指定する。小さいほど黒い。
barplot(rep(1,11),names=seq(0,1,0.1),col=grey(seq(0,1,0.1)))

f:id:yk_uminami:20160407021534p:plain

カラーチャートを使う

  • 連続した変化を色で表現するときなどに。
  • barplot(rep(1,4),names=rainbow(4),col=rainbow(4))
    • チャートrainbow()から4つの色が抜き出される。

f:id:yk_uminami:20160407020236p:plain

カラーチャート見本

  • rainbow()
    • barplot(matrix(rep(1,50),50),horiz=T,col=rainbow(50))

f:id:yk_uminami:20160407015156p:plain

  • heat.colors()
    • barplot(matrix(rep(1,50),50),horiz=T,col=heat.colors(50))

f:id:yk_uminami:20160407015423p:plain

  • terrain.colors()
    • barplot(matrix(rep(1,50),50),horiz=T,col=terrain.colors(50))

f:id:yk_uminami:20160407015543p:plain

  • topo.colors()
    • barplot(matrix(rep(1,50),50),horiz=T,col=topo.colors(50))

f:id:yk_uminami:20160407015624p:plain

  • cm.colors()
    • barplot(matrix(rep(1,50),50),horiz=T,col=cm.colors(50))

f:id:yk_uminami:20160407015707p:plain