R の ggplotX 軸ティックラベルを変更する
-
scale_x_discrete
を使用して、R のggplot
X 軸ティックラベルを変更する -
カスタム関数で
scale_x_discrete
を使用して、R のggplot
X 軸ティックラベルを変更する
この記事では、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)