見出し画像

ggplot2 を使ったドットプロットの作成

ボックスプロットと同様にデータの分布を確認するための表示方法として、「ドッットプロット」があります。その名の通り、ドットプロットでは「ドット(点)」をデータの分布している場所に打つことで、データがどの区域に集まっているかを視覚化するものです。

ドットプロットに読み込むデータの形式

ボックスプロットと同様に、2列のデータです。サンプルの列が横に並んでいる場合は、 gather() 関数を利用して、整形しておく必要があります。

plot_data <- input_data %>%
  gather(starts_with("Sample"), key = "Sample", value = "Read_count")

> plot_data
# A tibble: 500 × 2
   Sample  Read_count
   <chr>        <dbl>
 1 Sample1      11.1
 2 Sample1       9.80
 3 Sample1       9.22
 4 Sample1      10.2
 5 Sample1      10.8
 6 Sample1       9.54
 7 Sample1      10.4
 8 Sample1      11.0
 9 Sample1      10.7
10 Sample1      10.4
# … with 490 more rows
# ℹ Use `print(n = ...)` to see more rows

geom_dotplot() を使ってドットプロットを作成

ボックスプロットは、geom_boxplot() を使いましたが、ドットプロットには、 「geom_dotplot()」が用意されています。使い方は同様で、 ggplot() に + で続けて記述します。その際、ボックスプロットは引数を必要としませんでしたが、ドットプロットの場合は、binaxis, stackdir,  binwidth の指定が必要です。

ドットプロットのオプション

  • binaxis: ドットに使用するデータが aes の x, y のどちらかです。通常、 "y" になります。

  • stackdi: ドットの並べ方です。デフォルトでは、"up" となっており、左揃えで整列します。左右対象に並べたい場合は、"center" を指定します。"down" で右揃えになります。

  • binwidth: どれくらいの区画ごとにドットを打つか指定します。

全て指定すると下記のようになります。

g <- ggplot(plot_data, aes(x = Sample, y = Read_count))
g + geom_dotplot(binaxis = "y", stackdir = "center", binwidth = 0.1)

下記のようなドットプロットが表示されます。

ドットプロットの例

色付けしたドットプロット

これもボックスプロットの同様に、ドットに色付けすることができます。ggplot() で aes() を指定する際に、 fill を指定します。ラベルの非表示や、その他の theme を変更すると、下記のようになります。

g <- ggplot(plot_data, aes(x = Sample, y = Read_count, fill = Sample))
g + geom_dotplot(binaxis = "y", stackdir = "center", binwidth = 0.1) +
  theme(axis.text.x  = element_text(size = 12),
        axis.title.x = element_blank(),
        axis.title.y = element_text(size = 18),
        legend.position = "none")

サンプルごとに色を変更したドットプロットが表示されます。

ドットを色付けしたドットプロット


この記事が気に入ったらサポートをしてみませんか?