統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

EZR でヒストグラムを書く方法 色を変える

EZR でヒストグラムを書いて、色を変える方法

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

EZR でヒストグラムを書くためのサンプルデータ

ROC曲線のサンプルデータを使用。KTSNDという質問票の合計スコア(連続量)とSMKという0/1のカテゴリデータが格納されている。

空白区切りのテキストファイルだ。

ROC曲線サンプルデータ | TKER SHOP

読み込むときは、ファイルのインポートを使う。

「ファイル」→「データのインポート」→「ファイル~からテキストデータを読み込む」

空白区切りにして読み込む。

空白区切りをクリック

EZR でヒストグラムをグループ別にカラーで描いてみる

EZRのメニュー「グラフと表」から「ヒストグラム」を選択。

「グラフと表」→「ヒストグラム」を選択

変数にKTSND、群別変数にSMKを選ぶ。

「カラーで描画する」をクリックする。

変数と群別変数を選択する

OKをクリックするとカラーでグラフが描かれる。

群別のヒストグラム(EZRデフォルトカラー)

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

EZR でヒストグラムを書く際の色の系統を確認する

色を変えたいときに一番簡単なのは、標準色の8色から色を選ぶことだ。

そこで、標準色を確認してみる。

「グラフと表」から「グラフの色の系統の変更」を選択。

「グラフと表」→「グラフの色の系統の変更」

何もいじらずOKをクリックする。

グラフの色の系統の変更のウィンド

標準色の一覧が図示される。

標準の8色一覧

この8色から選ぶのが一番簡単な方法だ。

EZR でヒストグラムを書いたあと色を変える

EZRの標準色の8色を使ってグラフの色を変えてみる。

緑を青にしてみる。

いま3番の緑を使っているので、4番の青に変更してみる。

変更するにはRスクリプトを変更して、再度実行する。

変更するスクリプトは col=c() という場所だ。

この群別ヒストグラムは「Rスクリプト」窓の中の以下の部分で描かれている。

#####ヒストグラム#####
windows(width=7, height=7); par(lwd=1, las=1, family="sans", cex=1, 
  mgp=c(3.0,1,0))
res <- hist(Dataset$KTSND, breaks='scott', plot=FALSE)
temp.y <- Dataset[Dataset$SMK=="0",]$KTSND
temp.h <- hist(temp.y, breaks=res$breaks, plot=FALSE)$counts
temp.y <- Dataset[Dataset$SMK=="1",]$KTSND
temp.h <- rbind(temp.h, hist(temp.y, breaks=res$breaks, plot=FALSE)$counts)
barplot(temp.h, beside=TRUE, space=c(0, 0.4), 
  names.arg=res$breaks[-length(temp.h[1])], 
  legend=levels(factor(Dataset$SMK)), args.legend=list(title="SMK", 
  box.lty=0), axis.lty=1, axisnames=TRUE, col=c(2:3))
breaks <- NULL
for (i in 1:(length(res$breaks)-1)){breaks[i] <- paste(res$breaks[i], "-", 
  res$breaks[i+1], sep="")}
colnames(temp.h) <- breaks
rownames(temp.h) <- levels(as.factor(Dataset$SMK))
temp.h

キモの部分は以下の barplot() の部分だ。

barplot(temp.h, beside=TRUE, space=c(0, 0.4),
names.arg=res$breaks[-length(temp.h[1])],
legend=levels(factor(Dataset$SMK)), args.legend=list(title="SMK",
box.lty=0), axis.lty=1, axisnames=TRUE, col=c(2:3))

最後に出てくる col=c(2:3) という部分を col=c(2,4) と変更する。

barplot(temp.h, beside=TRUE, space=c(0, 0.4),
names.arg=res$breaks[-length(temp.h[1])],
legend=levels(factor(Dataset$SMK)), args.legend=list(title="SMK",
box.lty=0), axis.lty=1, axisnames=TRUE, col=c(2,4))

このように変更して、barplotから最後までを選択し、右にある実行ボタンをクリックする。

スクリプトを選択し、実行ボタンをクリックすると、選択部分のスクリプトが実行される

そうすると、2番の赤と、3番の緑を使っていたグラフが、2番の赤と4番の青を使ったグラフに変わる。

2番の赤と4番の青を使った群別ヒストグラム

6番のマゼンタと5番のシアンという配色もできる。

barplot(temp.h, beside=TRUE, space=c(0, 0.4),
names.arg=res$breaks[-length(temp.h[1])],
legend=levels(factor(Dataset$SMK)), args.legend=list(title="SMK",
box.lty=0), axis.lty=1, axisnames=TRUE, col=c(6,5))

6番のマゼンタと5番のシアンを使った群別グラフ

この1番から8番までの色を変更することもできる。

「グラフと表」→「グラフの色の詳細設定」を選択する。

「グラフと表」→「グラフの色の詳細設定」

色の四角をクリックすると、色を変えることができる。

変更した後は、1~8番の番号を指定するだけで変更した色が使える。

色の詳細及び変更ウィンド

EZR でヒストグラムの色を変える 色名を使う方法

col=c() の中の指定を変えれば、もっといろいろな色を使うことができる。

ごく一般的な色名で例えば purple, pink を使いたい場合、"purple", "pink"と直接書き込むことで指定できる。

barplot(temp.h, beside=TRUE, space=c(0, 0.4),
names.arg=res$breaks[-length(temp.h[1])],
legend=levels(factor(Dataset$SMK)), args.legend=list(title="SMK",
box.lty=0), axis.lty=1, axisnames=TRUE, col=c("purple","pink"))

purple & pink でヒストグラム

EZR でヒストグラムで変えられる色数は 657 色

統計ソフトRで指定できる色名は657色もある。

以下のようにシンプルにコンソールに書いてエンターをヒットするとずらっと色名が出力される。

その中の珍しい色名で指定することできる。

colors()

たとえば、ターコイズ(turquoise)と バイオレットレッド4(violetred4)というのを使うと、以下のような素敵な色のグラフを描くこともできる。

barplot(temp.h, beside=TRUE, space=c(0, 0.4),
names.arg=res$breaks[-length(temp.h[1])],
legend=levels(factor(Dataset$SMK)), args.legend=list(title="SMK",
box.lty=0), axis.lty=1, axisnames=TRUE, col=c("turquoise","violetred4"))

turquoise & violetred4 で描いた群別ヒストグラム

まとめ

EZRで、カラーのグラフを描いたときに、色をどのように変えるか、どのような色に変えられるかを紹介した。

メニューからテンプレートとなるスクリプトを書かせ、そのスクリプトを再利用して、col=c() の部分だけを変更して、色を変えたグラフを描かせる方法だ。

参考になれば。

EZR 公式マニュアル