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

箱ひげ図の軸を思い通りに設定する 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ずつふることを指定しています。

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

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目盛り範囲の調整

kimitsの使い方のイメージが付かない方は、以下の例を参考にしてください。上記のグラフから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を使ってグラフの軸を思い通りに変更する方法を紹介しました。今回紹介したものがとりあえずの基本テクニックだと思いますので、参考にしていただけますとうれしいです。

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

30代技術職(研究開発)です。週末は子どもと出かけた先で写真撮影をしています。このブログでは機材のレビューやお出かけの記録を配信しています。
そのほか、Rやggplotについて備忘録的に色々書こうと思っています。

あをみどりをフォローする
Rとggplot2
スポンサーリンク
シェアする
blue green photography
タイトルとURLをコピーしました