R: バイオリンプロットの作り方
UB3/informatics/r/violin_plot_r
このページの最終更新日: 2025/01/05別ページ
広告
概要: バイオリンプロットとは
バイオリンプロットは、データの分布を確認できる以下のような図をいう。クラシックな棒グラフ + エラーバー の図に比べて、どこにデータが多く分布しているのかを見られるのがメリットである。

以下のように ボックスプロット や beeswarm plot と重ね合わせる方法もあり、この場合にはさらに多くのパラメーターを含められるようになる (beeswarm + violin の図は文献 4 より)。
![]() |
![]() |

vioplot() 関数によるバイオリンプロットの作り方
R の vioplot パッケージを使う (1)。インストールしていなければ、まず install.packages("vioplot") を行う。library(vioplot) で読み込んでから、関数 vioplot を使用。
Syntax はシンプルで、2 つのベクター A と B がある場合には vioplot(A, B) のようにする。
A = rnorm(100, 5, 1)
B = rnorm(100, 8, 1)
vioplot(A, B)
デフォルトで box plot も表示するようになっているようで、以下のように多くのパラメーターが含まれる。
- 横幅はデータ数
- 白い点が中央値
- 黒い棒の上端が 75%、下端が 25% 四分位点

軸ラベル、色などは、R 組み込み関数と同様にして指定できるものが多い。

ggplot によるバイオリンプロットの作り方
ggplot で violin plot を描く関数は geom_violin である (3)。
まず、手作りのデータセットで 2 群のバイオリンプロットを作ってみる。
B = rnorm(100, 8, 1)
df = data.frame(A, B)
df は以下のようになる (一部のみ表示)。このデータフレームや、ベクトルの A, B をそのまま input にできれば便利なのだが、これは形式を変換する必要がある。

tidyverse パッケージ に含まれる pivot_longer() 関数を使う。これによって、データが次のように並べ替えられる。

並べ替えられたデータを ggplot の input とする。この例では Categories が A と B のみなので 2 つの群だが、この列の種類 (aes の中で x として指定する列に含まれる群) が増えれば、複数群のプロットになる。
geom_violin()+
theme_classic()

ggplot を使った方法は、別のページでさらに詳しく解説している。ページ上の目次 から「ggplot によるバイオリンプロット」へどうぞ。
広告
References
- ヴァイオリンプロット. Link: Last access 2022/08/09.
- RDocumentation.Link: Last access 2022/12/02.
- 【R初心者向け】ggplot2でバイオリンプロット(violin plot)を描く.Link: Last access 2023/06/20.
Tao et al., 2021a. Projected elevated [CO2] and warming result in overestimation of SPAD-based rice leaf nitrogen status for nitrogen management. Atomosphere 12, 1571.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。