ggplot (ggplot2) では色々なグラフがかけるけど、基本概念は「レイヤー構造」で作る、という事。
イメージは photoshop や illustrator のレイヤーと似てる。
ggplot()
でグラフ作りを始め、
aes()
でx, y 軸などを決定し、
その上に追加要素としてレイヤーを重ねていくイメージ。
できたグラフは
ggsave()
で出力する。
ggplot の基本概念
Data と Aesthetics (aes)
基本的には、
ggplot(データ, aes(x = x軸に使う要素、y = y軸に使う要素))
でグラフが作れる。
それ以降のレイヤーは、「+」でつなげていく。
Geometries (gomes)
Geometries は、グラフの種類を決める。
棒グラフ、箱ひげ、バイオリンプロット、折れ線 etc. 色々なグラフが作れる。
Statistics (stat)
stat は geom と同じ様に使われる事が多いけど、より specific に指示を与える時に使う。
見た目より統計によってグラフを変化させたい時など。
私の場合は、平均値で棒グラフを作ったり、エラーバーをつけたり etc.と、統計的なグラフを描く事が多いので、GeometriesではなくStatisticsで作図する場合が多い。
Position adjustment (position)
棒グラフをグループ毎に並べるかどうかとか、プロットの散らばり具合をどうするかとか、位置に関する事。
Annotations (annotation)
リフェレンスラインを作ったり、マップを作ったりする場合などに使用。
Scales (scale)
軸ラベル、レジェンド、タイトルなど。
カラーやプロットの形などもここで指定。
Facets (facet)
グラフをあるグループ毎に分けて複数のグラフにして表示する場合に使用。
Coordinates (coord)
x と y の aesthetics をどう見せるか。
デフォルトは Cartesian (cood_cartesian())。
例えばx軸とy軸をひっくり返したり、地図に反映させたりする場合などに使用。
Theme
全体のテーマ。背景をどうするか、エレメントをどうするか etc.
実例
例えば、下記のようなコードを書くと、
ggplot(Data, aes(x=MMSEtoDeath, y=MMSETotal, fill=Group)) + # 基本のデータと aesthetics
geom_line(alpha=0.05, aes(group = INDDID, color=Group), size=0.7) + # geometries: ラインのカラーやサイズなど
geom_point(shape=21, size=0.5, alpha=0.05, aes(fill=Group, color=Group)) + # geometries: 背景のプロットの大きさや透明度など
geom_smooth(method = "gam", se=T, size=1.5, aes(color=Group)) # geometries: ラインのスムージング
scale_x_reverse() + # x軸をひっくりかえす
ylim(0,30) +
theme_bw() + # テーマを bw() に
labs(x="Time from MMSE to Death (years)", y="MMSE (max=30)") + # x軸とy軸のラベル
scale_fill_manual(values = c("#2980B9","#154360","#CB4335", "#641E16", "#F39C12","#7E5109")) + # グラフの塗りのカラー
scale_color_manual(values = c("#2980B9","#154360","#CB4335", "#641E16", "#F39C12","#7E5109")) + # グラフの線のカラー
facet_wrap(~Cohort) + # Cohortの要素毎にグラフを分ける
theme(strip.background = element_blank())
ggsave(filename = "cognitive decline.eps") #グラフを EPS ファイルで出力
こんな感じのグラフができる ↓