Stataのグラフ上で色の設定をカスタマイズする

グラフ

このブログでは、統計解析ソフトStataのプログラミングのTipsや便利コマンドを紹介しています.

Facebook groupでは、ちょっとした疑問や気づいたことなどを共有して貰うフォーラムになっています. ブログと合わせて個人の学習に役立てて貰えれば幸いです.

以前、Stataのグラフの色彩設定を行うのに便利なコマンド colorpalette をご紹介しました.

今回は、色の設定の一般論的なところをもう少しだけ掘り下げてみたいと思います.

1.カラースキームを設定する

twoway でグラフを作ったりするときに、色を設定することがあると思います.これには、カラースキームを決めて自動で色を選択してもらう方法と、色を直接選択する方法の2つの決め方が存在することをまずは理解しておきましょう.

1.カラースキームとは

カラースキームとは、色のセットみたいなもので、全体の雰囲気をこれで指定することができます.デフォルトではs2colorというスキームになっております.

colorpalette

と入れると、現在のスキームで表示される色の一覧を見ることができます.特にグラフを描いた時に見覚えのある色が左上くらいにたくさん並んでいますよね.

query graphics

と入れると、現在のカラースキームが何なのか、といった情報が表示されます.

set schemeのところにs2colorと表示されていますね?

さらに、

graph query, schemes

と入れると、現状でどのようなカラースキームが選択できるかを一覧で表示できます.

2.カラースキームを指定する

定期的に記事を読んでいる英国の経済雑誌「Economist」の雰囲気にしたい場合には、

set scheme economist

と入れて適当にグラフを作ってみるとそれっぽい感じになります.

グラフのオプションにscheme(economist)と加えても同じようにエコノミストっぽくつくれます.

エコノミストのスキームで使われている色一覧は

colorpalette economist

でみることができます.

2.色を指定する方法(1)Stata仕様

次に、グラフを作成する際に、色を指定する方法についてご紹介したいと思います.

色を指定するには、色の名前を直接入力する方法と、カラーコードを指定する方法の2つがあります.

色の名前はStataで指定している色の名前を入力します.自分の場合はよく赤と青の組み合わせを作るときに、maroonとnavyを使ったりします.red, blueと入れた場合の雰囲気がやや明るすぎるのが気になるので、Stataのデフォルトカラーとしても使われているこの2色を愛用しています.

sysuse auto, clear
 
twoway (scatter price weight, mcolor(maroon) msymbol(Dh))||(lfit price weight, lcolor(navy)), legend(off) graphregion(color(white))
 
twoway (scatter price weight, mcolor(red) msymbol(Dh))||(lfit price weight, lcolor(blue)), legend(off) graphregion(color(white))

といれると、以下のような感じになりました。好みの問題でしょうか….

それと、色の透明度を指定することができるのすが、図を重ねたりするときに便利です.

twoway (hist price, fcolor(maroon%30) lcolor(maroon) w(500) freq) ///
   (hist weight, fcolor(navy%30) lcolor(navy) w(500) freq), ///
    graphregion(color(white)) legend(off) ylabel(, ang(0) format(%5.0f))

Stataが持っている色を一覧で示したい場合には

showmarkers , over(mcolor)

このコマンドはユーザーコマンドとしてUCLAのサイトで紹介されていました.わざわざこれだけのためにインストールするのもちょっとねー、、、という人はこのサイトを見て色を確認してもらうのもよいかもしれません.

3.色を指定する方法(2)カスタマイズ

カラーコードという、数字で色を表現することのできる方法を使います.

よく、ジャーナルで色の指定を

「RGBではなくCMYKでやってね」

と言ってきたりすることがありますが、これは何を意味するのか?と思ったことはありませんか?

パソコンやタブレット、スマートフォンなどのディスプレイ上で使われる色は「RGB」、印刷物に使われる色は「CMYK」で、表現する仕組みが違います。そのため、モニターで見ていたRGBの色とCMYKで印刷された色では違いがでてきます。

https://www.graphic.jp/feature/cmyk

RGBは光の3原色である赤(red)、緑(green)、青(blue)の頭文字を表します.

CMYKというのは、インキの三原色と言われるもので、Cyan(シアン)、Magenta(マゼンタ)、Yellow(イエロー)、Key plate(キープレート≒黒、墨)の頭文字をとって表したものだそうです.

シアン、マゼンタ、イエローは、印刷物において色を表示する際に使われます.理論上はこの3色の組み合わせがあればすべての色を表現できるのですが、純粋な黒を表現することができないので、「K」をプラスしています.

Stataで色を指定するときには、数字3つの並びでRGB、4つの並びでCMYKを表すことができます.

他にもStataでは、印刷物を作成するのによく用いられるソフトウェアで用いられるHSV(hue, saturation, and value)を指定することができます.これも3つの数字で表現するのですが、RGBと区別がつかないので、頭に”hsv”とつけます.

You can specify colors with HSV (hue, saturation, and value), also called HSL (hue, saturation, and luminance) and HSB (hue, saturation, and brightness). HSV is often used in image editing software. An HSV value is a triplet of numbers. So that Stata can differentiate them from RGB values, HSV colors must be prefaced with hsv.

Stata manual [G4] colorstyle — Choices for color 645

先ほどのグラフコマンドの一部にカラーコードを入れてみましたが、全く同じものができあがりました.番号をダブルクォーテーションでくくることと、Opacityの調整は色の名前と同じく、色の直後に%#(%の後ろに0~100の数字を入れる)とすること、そしてそこまでダブルクォーテーションの範囲に含めることがポイントとなります.

twoway (hist price, fcolor(maroon%30) lcolor(maroon) w(500) freq) (hist weight, fcolor("85 40 0 144%30") lcolor("85 40 0 144") w(500) freq), graphregion(color(white)) legend(off) ylabel(, ang(0) format(%5.0f))

4.色の探し方

色を細かく指定するには参照できる色見本があるといいですよね.

原色大辞典というサイトは色を一通り網羅しているので、ここから調べると色の名前もわかるのでいいかもしれません.これはRGBもCMYKも網羅しています.

もう一つの方法としては、こちらも参考にできそうです.

スケールバーで色を適宜調整することができます.

いずれの場合もインターネット環境にない場合には、RGB限定になりますが、Powerpointも使えるかもしれません.

適当に図を作って、塗りつぶしの色を選択するときに、「その他の色」を選択し、出てきたWindowでユーザー設定とすると、色を選ぶことができます.これはCMYKがないので若干不便ではありますが、ここで色のアタリをつけておいて、先ほどのカラーサイト.comからCMYKに自分で変換してみる、というのもよいでしょう.

5.色を後から変更したい場合

出来上がったグラフ、ちょっと変更したいなーってときありませんか?

以前にもちょっとご紹介しましたが、裏技で、gr_editというコマンドを使ってください.

gr_edit plotregion1.plot1.style.editstyle area(shadestyle(color(色の名前)))

twowayなどでグラフを重ねているときには、plot番号を選ぶとtwowayコマンドの何番目に指定したグラフなのかを選択することができます.

twoway (scatter price weight, mcolor(maroon) msymbol(Dh))||(lfit price weight, lcolor(navy))

このとき、散布図がplot1となり、fitted lineはplot2となります.

さて、いかがでしたか?色の指定、ちょっと奥深いですよね.

コメント

タイトルとURLをコピーしました