ggplot2: ボックスプロットを並び替える

ggplot2 で、ボックスプロットを作成する時、x軸の並び(サンプルの並び)は、自動的にアルファベット順になります。これは、aes() に指定したパラメーターが自動的に factor 型の文字列として扱われるからです。

これは、gather のときに、並び替えたい順序に指定したとしても、変更することはできません。WT, KO の順に並んで欲しかったとしても、アルファベット順なので、 KO, WT の順になります。

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

g <- ggplot(plot_data, aes(x = sample, y = read_count))
g + geom_boxplot()
WT, KO の順に並んで欲しかったが、、、

並び替えるには、gather 後に、サンプル列をレベルを指定した factor で上書きします。具体的には下記のような指定です。

plot_data <- input_data %>%
  gather(WT, KO, key = "sample", value = "read_count") %>%
  mutate(sample = factor(sample, levels = c("WT", "KO")))

# 従来の書き方だと、下記のように書けます。
# plot_data$sample <- factor(plot_data$sample, levels = c("WT", "KO"))

これで、WT、KO の順に並べることができました。

並びを指定した場合
 

投稿者:

Atsushi Doi

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

「ggplot2: ボックスプロットを並び替える」への1件のフィードバック

コメントは停止中です。