最高の ggplot2 テーマの完全ガイド
このチュートリアルでは、次のような最高の ggplot2 テーマの完全なガイドを提供します。
- 組み込みの ggplot2 テーマを使用してプロットの外観を変更する方法。
- ggthemesライブラリの事前定義されたテーマを使用してプロットの外観を変更する方法。
- パスパネルの背景やグリッド線など、テーマの特定のコンポーネントを編集する方法。
組み込みの ggplot2 テーマを使用してプロットの外観を変更する方法
次の各例では、埋め込まれた R データセットからの虹彩を使用します。
#view first six rows of iris dataset
head(iris)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
まず、 ggplot2ライブラリをロードし、x 軸にSepal.Length 、y 軸にSepal.Widthを種ごとに色分けして表示する散布図を作成します。
#load ggplot2 library library(ggplot2) #create scatterplot ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) + geom_point()
次に、組み込みの ggplot2 テーマのそれぞれがプロットの外観にどのような影響を与えるかを示します。
グレー_テーマ
デフォルトのテーマ。灰色の背景と白いグリッドが付いています。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_gray()
bw_テーマ
白地に黒のテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_bw()
テーマラインドロー
白地に幅の異なる黒線だけを描いたテーマです。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_linedraw()
テーマライト
theme_linedrawに似たテーマですが、データへの注目を集めるためにグレーの線と軸がデザインされています。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_light()
暗いテーマ
theme_lightに似たテーマですが、背景が暗いです。細い色の線を表現するのに便利なテーマです。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_dark()
最小限のテーマ
背景の注釈のないテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_minimal()
クラシックテーマ
グリッドのないテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_classic()
テーマ_ボイド
完全に空のテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_void()
ggthemes ライブラリの事前定義されたテーマを使用してプロットの外観を変更する方法
組み込みの ggplot2 テーマを使用することに加えて、ggthemes ライブラリの事前定義されたテーマを使用して、プロットの美しさを変更することができます。
まず、ggthemes ライブラリをロードします。
library(ggthemes)
次に、事前定義されたテーマを使用してプロットの美しさを変更する例をいくつか示します。
テーマ_wsj
ウォール・ストリート・ジャーナルのテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_wsj()
テーマタフテ
統計学者エドワード・タフティの著作にインスピレーションを得たミニマリストのテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_tufte()
ソラライズドテーマ
Solarized Paletteに基づいた色を使用するテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_solarized()
light = FALSE引数を使用して、プロット上で暗い背景を使用することもできることに注意してください。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_solarized( light = FALSE )
テーマ_gdocs
Google Docs Chart のデフォルトのテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_gdocs()
テーマ_五三八
Fivethirtyeight.comのプロットからインスピレーションを得たテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_fivethirtyeight()
テーマエコノミスト
エコノミストからインスピレーションを得たテーマ。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme_economist()
プロットの特定のコンポーネントを編集する方法
theme()関数とelement_rect()関数を使用して、プロット パネルの背景色を変更できます。
theme(panel.background = element_rect(fill, color, size))
- fill:長方形の塗りつぶしの色
- 色:境界線の色
- サイズ:境界線のサイズ
element_line()関数を使用して、グリッドのサイズと外観を変更することもできます。
theme(panel.grid.major = element_line(color, size, linetype), panel.grid.minor = element_line(color, size, linetype))
- 色:境界線の色
- サイズ:境界線のサイズ
- 線種:線種 (「空白」、「実線」、「破線」、「点線」、「二点鎖線」、「長鎖線」、「二点鎖線」)
次のコードは、プロット パネルの境界線とグリッド線を削除する方法を示しています。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point() +
theme(panel.border = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
次のコードは、プロット パネルの背景とグリッド線を変更する方法を示しています。
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) + geom_point() + theme( panel.background = element_rect(fill = "powderblue", color = "powderblue", size = 0.5, linetype = "solid"), panel.grid.major = element_line(size = 0.5, linetype = 'solid', color = "white"), panel.grid.minor = element_line(size = 0.25, linetype = 'solid', color = "white") )