HOWTO · R

R で軸ラベルを回転する

このチュートリアルでは、R のプロットで軸ラベルを回転させる方法を示します。

このページの内容

Base R と ggplot2 には、R で軸ラベルを回転させる方法が異なります。このチュートリアルでは、R で軸ラベルを回転させる方法を示します。

Base R で目盛りラベルを回転する

ベース R では、軸ラベルを軸に対して水平、垂直、または垂直に回転させることができます。最初にラベルを回転させるプロットを示し、その後、各方法を次のように示します。
las パラメーターは目盛りラベルの向きを制御し、4 つの値を取ります。

  • las = 0:軸と平行(デフォルト)。
  • las = 1:水平方向。
  • las = 2:軸に垂直。
  • las = 3:垂直方向。

サンプルコード:

# Create example data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Default Plot
plot(xLabel, yLabel)

出力:

デフォルトのプロット

水平方向の目盛りラベル:

プロットに las=1 を渡すことで、軸ラベルを水平方向に回転させることができます。

サンプルコード:

# Create example Data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Horizontal Axis Plot
plot(xLabel, yLabel, las=1)

上記のコードは、横軸ラベルを使用してプロットを作成します。

出力:

水平プロット

垂直方向の目盛りラベル:

プロットに las=3 を渡すことで、軸ラベルを垂直に回転させることができます。

サンプルコード:

# Create example Data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Vertical Axis Plot
plot(xLabel, yLabel, las=3)

上記のコードは、垂直軸ラベルを使用してプロットを作成します。

出力:

垂直プロット

軸に垂直な目盛りラベル:

プロットで las=2 を渡すことにより、軸ラベルを軸に垂直に回転させることができます。

サンプルコード:

# Create example Data
set.seed(99999)

xLabel <- rnorm(1000)
yLabel <- rnorm(1000)

# The Perpendicular Axis Plot
plot(xLabel, yLabel, las=2)

上記のコードは、軸ラベルに垂直なプロットを作成します。

出力:

垂直軸のプロット

las 値は、Base R の任意のタイプのプロットで変更できます。これらの値は目盛りラベルに作用し、軸タイトルは変更しません。タイトルを設定するには、xlab = "Horizontal value"ylab = "Vertical value" のような別の引数を使用します。

plot(xLabel, yLabel, las = 3,
     xlab = "Horizontal value", ylab = "Vertical value")

las パラメーターは、これら 4 つのドキュメント化された向きに限定されます。任意の角度が必要な場合は、独自のテキスト描画方法または次の ggplot2 の方法を使用してください。las を指定した axis() では任意の角度を設定できません。

ggplot2 で目盛りラベルを回転する

次の構文を使用して、ggplot2 の目盛りラベルを回転できます。x 軸には axis.text.x、y 軸には axis.text.y を使用し、element_text()anglehjustvjust を設定します。

plot + theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

ラベルは 45 度の角度に回転し、vjusthjust はラベルのテキストの垂直方向と水平方向の位置合わせを制御します。ggplot2 で軸ラベルを回転できるプロットを作成しましょう。

サンプルコード:

# Create example Data
Delftstack <- data.frame(Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'),
                         Id=c(101, 102, 103, 104, 105))

library(ggplot2)

ggplot(Delftstack, aes(x = Designation, y = Id)) +
  geom_col()

上記のコードは、指定されたデータからデフォルトのプロットを作成します。

出力:

デフォルトの Ggplot2

ggplot2 で目盛りラベルを 90 度に回転する

ggplot2 で軸ラベルを 90 度回転させる角度に値 90 を与えることができます。

サンプルコード:

# Create example Data
Delftstack <- data.frame(Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'),
                         Id=c(101, 102, 103, 104, 105))

ggplot(Delftstack, aes(x = Designation, y = Id)) +
  geom_col() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

上記のコードは、x 軸の目盛りラベルを 90 度回転させた ggplot2 のプロットを作成します。

出力:

90 度 Ggplot

ggplot2 で目盛りラベルを 45 度に回転する

ggplot2 で軸ラベルを 45 度回転させる角度に値 45 を与えることができます。

サンプルコード:

# Create example Data
Delftstack <- data.frame(Designation=c('CEO', 'Project Manager', 'Senior Dev', 'Junior Dev', 'Intern'),
                         Id=c(101, 102, 103, 104, 105))

ggplot(Delftstack, aes(x = Designation, y = Id)) +
  geom_col() +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))

上記のコードは、x 軸の目盛りラベルを 45 度回転させた ggplot2 のプロットを作成します。

出力:

45 度 Ggplot

y 軸の目盛りラベルを回転するには、テーマの対象を axis.text.y に変更します。軸タイトルを回転する場合は、axis.title.x または axis.title.y を使用します。たとえば、theme(axis.title.x = element_text(angle = 15)) はタイトルを対象とし、目盛りラベルのテキストは対象にしません。

角度と配置を選ぶ

カテゴリ名が長い場合や重なる場合は、まず 90 度を試します。ラベルが斜めに収まる場合は 45 度を試し、文字が軸から離れすぎるときは hjustvjust を調整します。適切な値はプロットの大きさ、フォント、グラフィックスデバイスによって異なるため、使用するサイズで最終出力を確認してください。回転は文字の向きを変えますが、狭いプロット領域に自動的に空間を追加するわけではありません。Base R の例では標準の graphics パッケージだけを使用します。ggplot2 の例には ggplot2 パッケージとプロットを描画するデバイスが必要です。パッケージを利用できない場合は、例を別の作図システムに変更せず、プロジェクト環境の方針に従ってインストールしてください。