R の ggplotX 軸ティックラベルを変更する
-
scale_x_discreteを使用して、R のggplotX 軸ティックラベルを変更する -
カスタム関数で
scale_x_discreteを使用して、R のggplotX 軸ティックラベルを変更する
この記事では、R の ggplot x 軸ティックラベルを変更する方法を紹介します。
scale_x_discrete を使用して、R の ggplot X 軸ティックラベルを変更する
scale_x_discrete と scale_y_discrete は、プロットのスケールラベルと制限の高度な操作に使用されます。この場合、scale_x_discrete を使用して ggplot オブジェクトの x 軸目盛りラベルを変更します。最初の ggplot オブジェクトは、diamonds データセットに基づく棒グラフであることに注意してください。グラフは cut 列を使用し、y 軸に各タイプのカウントをプロットします。x 軸のデフォルトのタイトルは cut です。これは、scale_x_discrete の最初の引数として文字列を渡すことで変更できます。または、ベクトルを作成して labels パラメータに割り当てることにより、各ラベルに特定の文字列値を渡すこともできます。両方のグラフは、gridExtra パッケージの一部である grid.arrange 関数を使用して並べて描画されます。
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
grid.arrange(p1, p2, ncol = 2)

x 軸のラベルを変更するもう 1つの便利な方法は、関数オブジェクトを labels パラメーターとして渡すことです。次のコードスニペットは、abbreviate 関数を使用してラベルを自動的に短縮し、グラフを 2つの列として描画します。
library(ggplot2)
library(gridExtra)
p1 <- ggplot(diamonds, aes(cut)) + geom_bar(fill = "orange") + scale_x_discrete("Cut")
p2 <- p1 + scale_x_discrete("Cut Type", labels = c("Fair" = "F","Good" = "G", "Very Good" = "VG","Premium" = "P","Ideal" = "I"))
p3 <- p1 + scale_x_discrete("Cut Type", labels = abbreviate)
grid.arrange(p2, p3, ncol = 2)

scale_x_discrete はさまざまなグラフで同様に機能し、次の例に示すように、ラベル操作手法を適用できます。つまり、いくつかの散布図が mpg データセットから描画されます。
library(ggplot2)
library(gridExtra)
p1 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point()
p2 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point() +
scale_x_discrete(labels = abbreviate)
p3 <- ggplot(mpg, aes(manufacturer, cty)) + geom_point(colour = "blue") +
scale_x_discrete(labels = abbreviate)
grid.arrange(p1, p2, p3, nrow = 3)

カスタム関数で scale_x_discrete を使用して、R の ggplot X 軸ティックラベルを変更する
scale_x_discrete パラメータ labels は、カスタム関数オブジェクトを使用して、それに応じて各ティックラベルを変更できます。この場合、最初に各ラベルを省略してから、文字列の開始文字を大文字に変換する capitalize_all 関数を実装しました。paste、toupper、substring、および abbreviate の組み込み関数を使用して capitalize_all 機能を実装しますが、これらのメソッドの完全なレビューはこの記事の範囲外であることに注意してください。マニュアルページは、R コンソールの ?function_name 表記を使用して表示できます。
library(ggplot2)
library(gridExtra)
capitalize_all <- Vectorize(function(x) {
s <- abbreviate(x)
paste(toupper(substring(s, 1,1)), substring(s, 2), sep="", collapse=" ")
})
ggplot(mpg, aes(manufacturer, cty)) + geom_point(aes(colour = trans)) +
scale_x_discrete(labels = capitalize_all)

