統計ER

統計ソフトRの使い方を中心に、統計解析方法の解説をするブログ。ありそうでなかなか見つからないサンプルサイズ計算などニッチな方法について紹介しています。

EZRのグラフの色を変えるには?

ブログランキングに参加しています。
まずはぽちぽちっとお願いします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
にほんブログ村 科学ブログ 数学へ

統計ソフトEZRは無料で使えるのに、メニューから統計解析を選んで操作できる、初心者に優しいソフトウェアだ。

ただし、グラフの色を変えるには少しコツがいる。

少しだけRスクリプトを知る必要がある。

この記事を読めば、どこをどのように変えれば、色を変えることができるかわかるようになる。

EZRでグラフを描くためのサンプルデータ

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

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

読み込むときは、ファイルのインポートで、空白区切りにして読み込む。

f:id:toukeier:20210718204426p:plain
「ファイル」→「データのインポート」→「ファイル~からテキストデータを読み込む」

f:id:toukeier:20210718204646p:plain
空白区切りをクリック

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

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

f:id:toukeier:20210718204925p:plain
「グラフと表」→「ヒストグラム」を選択

変数にKTSND、群別変数にSMKを選ぶ。「カラーで描画する」をクリックする。

f:id:toukeier:20210718205027p:plain
変数と群別変数を選択する

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

f:id:toukeier:20210718205136p:plain
群別のヒストグラム(EZRデフォルトカラー)

EZRのカラーグラフの色の系統を確認する

色を変えたいときに一番簡単なのは、標準色の8色から色を選ぶことだ。では、標準色を確認してみよう。「グラフと表」から「グラフの色の系統の変更」を選択。

f:id:toukeier:20210718205301p:plain
「グラフと表」→「グラフの色の系統の変更」

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

f:id:toukeier:20210718205412p:plain
グラフの色の系統の変更のウィンド

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

f:id:toukeier:20210718205457p:plain
標準の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から最後までを選択し、右にある実行ボタンをクリックする。

f:id:toukeier:20210718210234p:plain
スクリプトを選択し、実行ボタンをクリックすると、選択部分のスクリプトが実行される

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

f:id:toukeier:20210718210347p:plain
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))

f:id:toukeier:20210718210542p:plain
6番のマゼンタと5番のシアンを使った群別グラフ

この1番から8番までの色を変更することもできる。「グラフと表」→「グラフの色の詳細設定」を選択する。

f:id:toukeier:20210718212041p:plain
「グラフと表」→「グラフの色の詳細設定」

色の四角をクリックすると、色を変えることができる。変更した後は、1~8番の番号を指定するだけで変更した色が使える。

f:id:toukeier:20210718212207p:plain
色の詳細及び変更ウィンド

統計ソフトRの色名を使って色を変えてみる

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"))

f:id:toukeier:20210718211012p:plain
purple & pink でヒストグラム

統計ソフトRで指定できる色名は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"))

f:id:toukeier:20210718211324p:plain
turquoise & violetred4 で描いた群別ヒストグラム

まとめ

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

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

EZRできれいなグラフを描きたいあなた。ぜひ試してみてほしい。

EZR公式マニュアル

EZR開発者執筆の公式マニュアル。

f:id:toukeier:20210718215207p:plain
https://amzn.to/3kwhWDq