カラーパレット2

先日紹介したStataのカラーパレットにさらに強力なバージョンが存在することがわかったのでシェアします.

色のグラデーションをつけたいときにはこちらのほうが便利そうですし、

いろいろと使い勝手がよさそうな印象です。まだ使いこなせているわけではありませんが、その機能の一部を試してみたので紹介します.

コンテンツ
  1. ”colorpalette”のado fileをインストールする
  2. 色々なパレットのうち、“HCL”というパレットを使ってみる
  3. グラフに実際使ってみる

1.”colorpalette”のado fileをインストールする

“colorpalette”という名のado fileをスイスのベルン大学のBen Jannさんという方が作成されたようで、オンラインで取ってくることができます.

help colorpalette

で次のような画面がでてきたら、gr0075の部分をクリックしましょう.

パッケージをインストールしてみましょう↓

“click here to install” の部分をクリック!

すると次のような画面がでてくればインストール成功です.

2.色々なパレットのうち、“HCL”というパレットを使ってみる

パッケージをインストールしたら、実際にパレットを見てみましょう.

ここでは”HCL”というパレットを見てみることにします.

“hcl palette is an HCL (Hue-Chroma-Luminance) color generator.  The implementation is based on R’s colorspace package by Ihaka et al. (2016).”

colorspace: A Toolbox for Manipulating and Assessing Colors and Palettes

ということなので、統計ソフトRから輸入したものっぽいですね.

colorpalette hcl

と入れてやると、次のようなパレットがでてきます.

これが基本設定で、色の濃淡を10段階にわけて表示したい場合には、

colorpalette, vertical n(10): hcl, blues / hcl, greens / hcl, oranges / hcl, purples / hcl, heat / hcl, plasma 

といれてやれば良いわけです.

次にこの色達を使ってグラフを描きたいと思います.

3.グラフに実際使ってみる

簡単なグラフを描いてみることにします.

グループごとの平均値(+信頼区間)が年々どのように変わっていくかを描いたグラフです.

まずできあがりのイメージから.

青色をベースに濃淡をつけてグループ別に描いていったのですが、

colorpalette hcl, blues 

これで青色の段階的な色の感じがわかります.

これの1番目と5番目と9番目を使いたいなあ、という場合には、

 colorpalette hcl, blues select(1 5 9) 

でOKです.ここでscalar値を確認しておきましょう.

 return list 

scalars:
       r(n) = 3
macros:
       r(ptype) :”color”
       r(pname) :”hcl”
       r(pnote) :”blues”
       r(p) : “”0 49 161” “86 103 171” “147 155 202″”
       r(p3info) : “hcl 260 40 65”
       r(p3) : “147 155 202”
       r(p2info) : “hcl 260 60 45”
       r(p2) : “86 103 171”
       r(p1info) : “hcl 260 80 25”
       r(p1) : “0 49 161”

という結果が返ってきますが、色を表す数列が出てきますので、これをマクロにすればよいわけです.

colorpalette hcl, blues select(1 5 9) nograph
	local blue1 `r(p1)'
	local blue2 `r(p2)'
	local blue3 `r(p3)'

こんな感じ.これをグラフに埋め込めばOKです.

このとき、色の数列は“ ” (ダブルクォーテーション) で必ず括ってください.

.twoway rcap a b, lcolor("`blue1'")

こうしないと折角の色がグラフに反映されず、デフォルトのグレースケールになります.

さて、できあがりのグラフを描くためのsyntaxを最後に掲載しておきます.

clear
input group	beta	low	high year
	1	5	3	7	1
	1	2	1	5	2
	1	1	0	3	3
	2	6	3	9	1.05
	2	3	1	8	2.05
	2	1	0	4	3.05
	3	3	1	6	1.1
	3	2	1	4	2.1
	3	1	0	2	3.1
end

colorpalette hcl, blues select(1 5 9) nograph
	local blue1 `r(p1)'
	local blue2 `r(p2)'
	local blue3 `r(p3)'

linepalette pplain, n(3) nograph
	local line1 `r(p1)'
	local line2 `r(p2)'
	local line3 `r(p3)'

#delimit;
	twoway rcap high low year if group==1, lcolor("`blue1'") 
	|| 
	connected beta year if group==1, sort msymbol(Dh) mcolor("`blue1'") lcolor("`blue1'")  
	||
	rcap high low year if group==2, lcolor("`blue2'") lpattern(`line2')
	|| 
	connected beta year if group==2, sort msymbol(Dh) mcolor("`blue2'") lcolor("`blue2'") lpattern(`line2')
	||
	rcap high low year if group==3, lcolor("`blue3'") lpattern(`line3')
	|| 
	connected beta year if group==3, sort msymbol(Dh) mcolor("`blue3'") lcolor("`blue3'") lpattern(`line3')
	,
	xlabel(1(1)3) legend(order(1 "Group 1" 3 "Group 2" 5 "Group 3") row(1)) yscale(range(0 10)) ylabel(0(2)10, angle(0))
	;
#delimit cr 

まとめ

  • かなり強力なカラーパレットを入手しました.
  • さらに詳しく知りたい方は、こちらも参考にしてください.Ado fileを作った人の記事っぽいです.(地図がスイス!)

ではまた!

コメント

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