Rのggplot2を用いて、2軸グラフを作成するための簡単な方法をお伝えします.
2軸グラフは、グラフの縦軸(y軸)が左側と右側の両方にあり、それぞれ単位が異なるグラフのことを言います。

2軸グラフは、一般的に推奨されてはおりません。
そのため、ggplot2パッケージを用いた2軸グラフを作成するためには、scale_y_continuous()関数のsec.axis引数を

2軸グラフは、一般的に推奨されてはおりません。
そのため、通常の方法でggplot2パッケージを用いて2軸グラフを作成する方法は手間がかかります。
通常の方法は、scale_y_continuous()関数のsec.axis引数を設定することになります。
しかし、この方法は第2軸のラベルのみを設定するだけなので、第2軸のラベルと値の整合性の調整はコードの作成者自身が行う必要があります。

ここでは、一般的に推奨されていないとはいえ、時として必要になる2軸グラフを最小の労力で作成するために方法をお伝えします.

環境

Rの動作環境は次になります。


$ R --version

R version 4.1.0 (2021-05-18) -- "Camp Pontanezen"
Copyright (C) 2021 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

今回、使用するRのパッケージのバージョンは次になります。


> packageVersion("ggplot2")
[1] ‘3.3.3’

> packageVersion("cowplot")
[1] ‘1.1.1’

cowplotパッケージを用いた2軸グラフの簡単な作成方法

2軸グラフの作成のアイディアはとても簡単です。
2つのグラフを作成したあと、cowplotパッケージを用いて、それらを重ね合わせて表示するという方法になります。
実際のコードを次に記載します。
ここでは、irisデータを用いて、Sepal.Length列のヒストグラムおよび密度グラフの2軸グラフとし、さらにfacet_gridでSpecies列を適用することにします。
2つのグラフを重ね合わせるので、二番目のグラフのy軸を右側にしたり、背景色を除外したり、x軸のラベルを除外したりしております。
このような、やや複雑な2軸グラフでも問題ない2軸グラフとなっていることが確認できます。


library(ggplot2)
library(cowplot)

g1 <- ggplot(iris, aes(x = Sepal.Length))
g1 <- g1 + geom_density()
g1 <- g1 + facet_grid(. ~ Species)

g2 <- ggplot(iris, aes(x = Sepal.Length))
g2 <- g2 + geom_histogram()
g2 <- g2 + scale_y_continuous(position = "right")
g2 <- g2 + theme_half_open()
g2 <- g2 + theme(axis.title.x=element_blank(),
                 axis.text.x=element_blank(),
                 axis.ticks.x=element_blank())
g2 <- g2 + facet_grid(. ~ Species)

aligned_plots <- align_plots(g1, g2, align="hv", axis="tblr")
ggdraw(aligned_plots[[1]]) + draw_plot(aligned_plots[[2]])

2軸プロットを保存する場合は、次のようなコードになります。
cowplotパッケージのsave_plot()関数の詳細な指定方法はヘルプをご参照ください。


p <- ggdraw(aligned_plots[[1]]) + draw_plot(aligned_plots[[2]])
save_plot("sample.png", p)

関連する記事

  • R言語 CRAN Task View:時空間データの処理と分析R言語 CRAN Task View:時空間データの処理と分析 CRAN Task View: Handling and Analyzing Spatio-Temporal Dataの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Edzer Pebesma, Roger Bivand Contact: edzer.pebesma at […]
  • WindowsにMariaDBをインストールする手順WindowsにMariaDBをインストールする手順 WindowsにMariaDBをインストールする手順についてお伝えいたします。 ファイルのダウンロード MariaDBのインストールファイルをダウンロードするために、次のサイトに移動します。 MariaDB.org - Supporting continuity and open […]
  • RStudioのGlobal Optionsの各種設定RStudioのGlobal Optionsの各種設定 RStudioのGlobal Optionsにどのような内容が記載されているかをお伝えいたします。 RStudioのGlobal Optionsは、メニューバーからToolsを選択して、表示されたポップアップ内にあります。 目次 General: 一般 Code: コード Editing: 編集 Display: 表示 […]
  • R MASSパッケージcorresp関数のエラー対処方法 RのMASSパッケージ内のcorresp関数を用いたとき、エラーに悩まされたので、皆様と共有しておく。 環境 Ubuntuのバージョン $ cat /etc/lsb-release […]
  • R ggpartyパッケージを用いた決定木の可視化R ggpartyパッケージを用いた決定木の可視化 決定木の可視化において、とても柔軟性が高いggpartyパッケージをご紹介します。 ggpartyパッケージは、ggplot2の機能をpartykitに拡張し、partyクラスのツリーオブジェクトのために明瞭に構造化され、高度にカスタマイズ可能なビジュアライゼーションを作成するために必要なツールを提供します。 ggpartyパッケージを用いると、ノードやエッジに対 […]
R ggplot2を用いた2軸グラフの簡単な作成方法