ggplot2: バイオリンプロット (geom_violin)

データ数が多い場合、データの分布が見るときに、バイオリンプロット geom_violin() を使います。バイオリンプロットでは、データの分布が分布曲線の波形で表示されるので、どの区間に多くデータが存在しているか確認できます。データの分布が内部で大きく2つに分かれているようなケースではも、文字通りバイオリンの形になります。

geom_violin(trim = FALSE)

波形の上端と下端が切り取られたイメージにしたくない場合は、オプションで trim = FALSE を指定します。プロットするためのデータは、 geom_boxplot(), geom_dotplot() と同じです。(例のオブジェクトg までは同じ。)

input_data <- tibble("Sample1" = rnorm(100),
                     "Sample2" = rnorm(100))

plot_data <- input_data %>%
  gather(Sample1, Sample2, key = "sample", value = "read_count")

g <- ggplot(plot_data, aes(x = sample, y = read_count))
g + geom_violin(trim = FALSE)

また、ggplot2 は、プロットを重ねて書くこともできます。 geom_violin() + geom_dotplot() とすることで、バイオリンプロットにドットプロットを重ねて表示できます。

g + geom_violin(trim = FALSE) +
  geom_dotplot(binaxis = "y", stackdir = "center", binwidth = 0.1)

 

投稿者:

Atsushi Doi

株式会社セルイノベーター 取締役、研究開発部部長。理学博士。山口大学大学院理工学研究科修了。東京大学医科学研究所ヒトゲノム解析センターの特任助手を経て、株式会社GNIに主任研究員として勤務。その後、株式会社セルイノベーターの立ち上げに参加し、現在に至る。専門は、バイオインフォマティクス、おもにシステムバイオロジー。