今回はggplot2で作図する時のラベルのカスタマイズ方法について紹介します。軸のラベルやタイトルに表示する文字やそのスタイルを調整できるようになるのが目的です。
軸ラベルやタイトルの文字を設定する
グラフの軸ラベルやタイトルを変更をするときは、labs()関数を使います。タイトルに表示する文字を設定するときは、title引数で指定し、X軸やY軸のラベルを設定するときはそれぞれx、y引数で指定します。
labs()関数で指定できる項目は以下の通りです。
labs関数で設定できる項目
- title:グラフのタイトル
- subtitle:サブタイトル(タイトルの下に小さく表示されます)
- x:X軸のタイトル
- y:Y軸のタイトル
- caption:グラフの説明文(初期設定だとグラフの下に小さな文字で表示されます)
- tag:グラフのタグ(論文などで図の左上にA、Bなどと通し番号のように表示されているもの)
設定できる項目がグラフのどこに対応しているかは以下の図を参考にしてください。
図のタイトルなどの文字を設定する時はlabs()関数を使うと便利。
文字のスタイル/形式の変更
タイトルやラベルのフォントサイズやフォントスタイル、色などの見た目の要素を設定するときはtheme()関数から設定できます。
theme()関数でタイトルの見た目を設定するときは、title引数に設定項目を記述し、軸ラベルの見た目を設定するときは、axis.title引数に設定項目を記述します。
ggplot( ) +
geom_〇〇( ) +
theme(
title = element_text( ),
axis.title.x = element_text( ),
axis.title.y = element_text( ),
plot.subtitle = element_text( ),
plot.caption = element_text( ),
plot.tag = element_text( )
)
図のタイトルなどの見た目を設定する時は theme()関数から設定する。
設定する項目と引数の対応関係は以下の通りです。
設定する項目と引数の対応
- plot.title:タイトル
- axis.title.x:x軸のタイトルの見た目
- axis.title.y:y軸のタイトルの見た目
- plot.subtitle:サブタイトルの見た目
- plot.caption:キャプション(グラフの説明文)の見た目
- plot.tag:タグの見た目
どのように見た目を変更するかはelement_text()関数内で記述します。例えば、文字の大きさを変更するときはsize引数で設定し、文字の色を変更するときはcolor引数で設定できます。見た目の記述をするために設定できる項目は以下の通りです。
設定できる項目
- family:フォントの種類
- face:フォントの装飾(bold, italic, plain)
- size:文字の大きさ
- hjust:横方向の文字揃え(左揃え:0, 右揃え:1, 中央揃え:0.5)
- vjust:縦方向の文字揃え(下揃え:0, 上揃え:1, 中央揃え:0.5)
- angle:文字の回転角度
- lineheight:行の間隔
- margin:マージン
theme()関数はここで紹介したもの以外にも幅広い項目を設定することができます。theme()関数の詳細はggplot2パッケージのリファレンスページをご参考にしてください。
具体例
具体例として iris データのグラフを作ってみて色々なラベルを設定してみたいと思います。
ggplot(iris) + geom_point(aes(x = Sepal.Length, y = Sepal.Width)) + # 表示する文字の設定 labs( title = "TITLE", subtitle = "subtitle here", x = "X axis", y = "Y axis", caption = "explain here", tag = "A" ) + # 見た目の設定 theme( plot.title = element_text(face = "bold", color = "red"), axis.title.x = element_text(hjust = 0), axis.title.y = element_text(size = 24), plot.subtitle = element_text(color = "orange", size = 12), plot.caption = element_text(face = "italic"), plot.tag = element_text(color = "blue", angle = -30) )
今回は色々な項目を設定しましたが、変更したい所だけ変更すれば大丈夫です。これでラベルやタイトルなどの項目を自由に設定できるようになると思います。