【Rとggplot2】軸ラベルのサイズや目盛りの間隔を思い通りに変更する方法

箱ひげ図の軸を思い通りに設定する 備忘録

軸ラベルやフォントを変更する

xlabやylabで指定してあげると、軸タイトルを思い通りのものへと変更することができます。

軸のフォントやフォントサイズも以下のようにtheme()で指定することができます。

なお、xlabやylabを使うと軸のタイトルを設定することができます。

theme内で基本的なフォント設定ができますので、ぜひ覚えておきたいですね。

ggplot(data = iris, aes(x = Species, y = Sepal.Length)) + 
  geom_boxplot()+
  xlab("Species")+ylab("Sepal length")+ #軸のタイトルを指定する
  theme(axis.text = element_text("sans", size = 24)) #目盛りのフォントサイズを変更する
軸のフォントサイズ変更

上の例では、setoa、vesicolor、virginiaといった軸目盛りのフォントのみサイズ変更していますが、以下のように、全体的に フォントサイズを指定することもできます。

ggplot(data = iris, aes(x = Species, y = Sepal.Length)) + 
  geom_boxplot()+
  xlab("Species")+ylab("Sepal length")+ #軸のタイトルを指定する
  theme(axis.text = element_text("sans", size = 24)) +#目盛りのフォントサイズを変更する
  theme(text = element_text(size = 24)) #全体的にフォントサイズを指定する
軸のフォントサイズ変更

軸の目盛りの間隔や範囲を調整する

limitsによりグラフの縦軸の長さ(表示範囲)を指定します。この場合、表示範囲は0から10に指定しています。

seqによりグラフ縦軸のうち、目盛りをつける範囲を指定しています。この場合0から10の範囲に目盛りを振り、目盛りは2ずつふることを指定しています。seq(0,10,2)の部分はそのような意味です。

慣れるまではこのような目盛りの振り方が面倒ですが、結構役に立ちます。

ggplot(data = iris, aes(x = Species, y = Sepal.Length)) + 
  geom_boxplot()+
  scale_y_continuous(breaks = seq(0,10,2), limits=c(0,10))+ #軸を表示範囲をlimitsで指定する。#seqで軸の目盛りをつける範囲が0から10であることと、2ずつメモリを設けることを指定する。
  xlab("Species")+ylab("Sepal length")+ #軸ラベル名の設定
  theme(text = element_text(size = 24)) 
ggplot2目盛り範囲の調整

limitsの使い方のイメージが付かない方は、以下の例を参考にしてください。上記のグラフからlimitsの範囲を0〜10でなく0〜20へと変更してみました。これで分かりやすくなるかと思います。

縦軸は20まで用意されるが、目盛りがふられるのはseqで指定された範囲(0〜10)のみになります。

「軸の範囲」と「目盛りをふる範囲」を別々に指定できるのは新鮮ですよね。これが意外と役に立ちます。

ggplot(data = iris, aes(x = Species, y = Sepal.Length)) + 
  geom_boxplot()+
  scale_y_continuous(breaks = seq(0,10,2), limits=c(0,20))+ #軸を表示範囲をlimitsで指定する。#seqで軸の表示範囲が0から10であることと、2ずつメモリを設けることを指定する。
  xlab("Species")+ylab("Sepal length")+
  theme(text = element_text(size = 24)) 
ggplot2目盛り範囲の調整

なお、目盛りの振り方は、seq内でlengthを使って行う方法もあります。

この場合、seq(0,10,length = 5) というのは、0〜10の範囲を5本の目盛りで分けるという意味になります。

このやり方はちょっとイメージしづらいところがあるかもしれませんが、一応、理解しておくと良いかと思います。

ggplot(data = iris, aes(x = Species, y = Sepal.Length)) + 
  geom_boxplot()+
  scale_y_continuous(breaks = seq(0,10,length = 5), limits=c(0,10))+ #軸を表示範囲をlimitsで指定する。#seqで軸の表示範囲が0から10であることと、5個のメモリで区切ることを指定する。
  xlab("Species")+ylab("Sepal length")+
  theme(text = element_text(size = 24)) 
ggplot2目盛り範囲の調整

まとめ

軸のフォントや軸ラベルは、Rからグラフを出力したものをillustratorやpowerpointで修正して思い通りに変更することができます。しかし、軸の表示範囲はそういったことができないので、やはりRで作図する段階で仕上げておきたいですよね。

今回は、Rとggplot2を使ってグラフの軸を思い通りに変更する方法を紹介しました。今回紹介したものがとりあえずの基本テクニックだと思いますので、参考にしていただけますとうれしいです。

体系的に勉強したい方は以下の書籍をどうぞ。私も両方持っています。

Tipsを求めるならRグラフィックスクックブック(第2版)の方が良いかもしれません。

それに対し、「実線Data Scienceシリーズ データ分析のためのデータ化可視化入門」の方はTipsの詳しさはクックブックにかないませんが、地図上にグラフを描くなどの「見せ方」を色々と知るには良い書籍だと思います。

この記事を書いた人
あをみどり

写真と文章の記録用ブログです。日常や旅先でのスナップ、カメラやレンズの使用感を中心に書いています。
デジタルはCanonのRFマウント、なぜかフィルムカメラはNikonのNew FM2を使用しています。無理せず少しずつ更新しています。

あをみどりをフォローする
備忘録
スポンサーリンク
カメラと写真の記録