スポンサーリンク

ggplot2で蜂群図に平均値+-SDの棒を加えたグラフを作成する(複数のグラフを重ねる)

2021年8月9日

何となく、蜂群図に平均値+-SDの棒を加えたグラフを作成したくなったので、ググってみたら、以下のサイトが見つかりました。

参考:https://note.com/eiko_dokusho/n/nb7f5f52819a4

スポンサーリンク

開発環境

Chrome
google colaboratoryでRを設定

google colaboratoryでRを使用できるようにする方法は、以下をご覧いただけましたら幸いです。

ソースコード

https://colab.research.google.com/drive/197NTWUqsBgOmGf6KCYt8KoM1jizQJus4#scrollTo=GmTdsNAHXT_n

ポイントはグラフのベースを作るときに、ggplot(NULL)で下地を作るところ

library(tidyverse)
# 平均と標準偏差の計算
d <- mtcars %>% 
  group_by(cyl) %>%
  summarise(wt_avg = mean(wt), wt_sd = sd(wt))
d
# グラフの重ね合わせ
g <- ggplot(NULL) +
  geom_point(data = mtcars, mapping = aes(x = factor(cyl), y = wt), colour="red") +
  geom_point(
    data = d,
    aes(x = factor(cyl), y = wt_avg)
  ) +
  geom_errorbar(
    data = d,
    aes(
      x = factor(cyl),
      y = wt_avg,
      ymin = wt_avg - wt_sd, 
      ymax = wt_avg + wt_sd), 
    width = 0.1
  ) +
  theme_classic() +
  theme(
    plot.title = element_text(size = 20),
    axis.title.x = element_text(size= 20),
    axis.title.y = element_text(size= 20),
    axis.text.x = element_text(size= 20),
    axis.text.y = element_text(size= 20)
  ) +
  ggtitle("(mean value)+-(standard deviation:SD)") +
  theme(plot.title = element_text(hjust = 0.5)) +
  scale_y_continuous(limits = c(0,5))
g

なお、今回のデータは、Rにあらかじめ入っている、

mtcars

というデータを利用しています。

32行11列のデータで、最初の6行は以下のような感じです。

ソースコード(2)

R

Posted by twosquirrel