目次

07.Google ColaboratoryでRで箱ひげ図と蜂群図(ほうぐんず)

2021/08/08 更新
初めての医療統計RとEZRトップページ

前回の06.Google Colaboratoryで時系列データで折れ線グラフを描画では、GoogleColaboratory上で、自作データをアップロードして、ggplot2を用いて折れ線グラフを描く方法を紹介しました。

今回は、次のような条件での、『4群の血糖値のデータ』をアップロードして、箱髭図、または蜂群図(beesworm)を作成します。さらに、4群の平均値に差があるかどうか、つまりone-way ANOVAを行ってみたいと思います。また、4群の平均値に差があった場合に、各2群同士で平均値に有意な差があるかどうかの検定(Tukey)も行います。

  1. 普通食、糖尿病薬投与無しのマウス(group A)の血糖値
  2. 普通食、糖尿病薬投与ありのマウス(group B)の血糖値
  3. 高脂肪食、糖尿病薬投与無しのマウス(group C)の血糖値
  4. 高脂肪食、糖尿病薬投与ありのマウス(group D)の血糖値

ソースコード

https://colab.research.google.com/drive/1Jv0eQ0g7K09FfQvUIN4U5ewEW5qphZLV?hl=ja

開発環境

Windows10 Pro (1803) (OSは何でもよいです)
Chrome
Googleアカウント

Google ColaboratoryでRプログラミングを行う方法については、Google Colaboratoryで3秒でR環境構築 2019年10月14日をご覧下さい。

今回使用したRパッケージ

tidyverse
cowplot

自前データの用意

今回、自前のデータとして、以下のエクセルファイルを用いてみます。

book3.xlsx (←クリックでダウンロードできます。)

Wild Typeマウスを、普通食vs高脂肪食、糖尿病薬(血糖降下薬)投与ありvs投与無しの4群に分けて飼育し、3ヶ月後の血糖値[mg/dL]を測定したデータです。(33行5列の仮のデータです。)

id highFatDiet medicine group glucose
A1 nasi nasi A 76
A2 nasi nasi A 82
A3 nasi nasi A 85
A4 nasi nasi A 114

Rで統計する際の自前データの記載方法については、03.Excelでcsv形式でデータを保存をご覧頂けましたら幸いです。半角英数字とピリオドのみを用いて記載していただくのがお勧めです。なお、欠損データは半角英数字の大文字で『NA』と記載してください。

Google ColaboratoryのR用テンプレートをコピーして名前をつけて保存

以下のテンプレートへ行き、Googleログインして、『ファイル』>『ドライブにコピーを保存』を順にクリックすると、自分のipynbファイルとして、そのままRを利用することができます。

https://colab.research.google.com/drive/1Wbt_tHd9KFEEszzXchwuFrhyCNR_KgtC

今回は、191018_ggplot-boxplot-beesworm_001.ipynb という名前にしました。

自前データのアップロードとread_excel()によるエクセルデータのRへの取り込み

今回、Rに取り込みたい自前データbook3.xlsxを、デスクトップに保存しておくものとします。

画面左上の『>』をクリックして、左側からタブのような画面を引き出します。

『ファイル』をクリック。

『アップロード』をクリック。

book3.xlsx を選択して、『開く』をクリック。


左側の画面に、book3.xlsxが表示されるので、右側のコードを入力する画面に以下を入力して、Shift+Enterを押して実行します。

# 後で使用するので、とりあえずtidyverseを使用するための準備
library(tidyverse)

# read_excel()関数を使用するための準備
library(readxl)

# d に、book3.xlsxの1番目のsheetをtibbleデータとして代入する
d <- read_excel("book3.xlsx", sheet=1)

# dの最初の数行を表示する
head(d)
str(d)

上記のようにして、自前のエクセルデータをGoogle ColaboratoryのR上に取り込むことができました。

geom_plot()関数を用いて箱ひげ図を描く

以下のように入力して、Shift+Enterで、groupごとの箱ひげ図を作成します。

# ggplotのgeom_bosplot()関数を用いて箱ひげ図を描く

ggplot(d, aes(x = group, y = glucose)) +
  geom_boxplot() +
  theme_classic()

これで、箱ひげ図を描くことができました。

geom_dotplot()関数を用いてbeesworm蜂群図(ほうぐんず)を描く

以下のように入力して、Shift+Enterで、groupごとの蜂群図(ほうぐんず)を作成します。

# geom_dotplot()関数を用いてbeesworm 蜂群図(ほうぐんず)を描く
# https://wikidocs.net/40935

ggplot(d, aes(x = group, y = glucose)) +
  geom_dotplot(binaxis = "y", stackdir = "center") +
  theme_classic()

Rのデータセット関連のメモ

https://qiita.com/wakuteka/items/95ac758070f6f4d89a96
@wakuteka
2016年12月26日に更新
R言語 標準データセットの私的まとめ

csvを取り込みたいとき

library(tidyverse)

setwd(エクセルファイルのある場所)
data <- read_csv("data.csv")
# 

エクセルファイルを取り込みたいとき

library(tidyverse)
library(readxl)

setwd(エクセルファイルのある場所)
data <- read_excel("data.xlsx", sheet = 1)

tribble()関数を用いる方法

library(tidyverse)

d <- tribble(
  ~id, ~highFatDiet, ~medicine, ~group,	~glucose,
  A1,	"nasi",	"nasi",	A,	76,
  A2,	"nasi",	"nasi",	A,	82,

)
d

Rで箱ひげ図のリンク

箱ひげ図は、「箱」と「ひげ」を用いて、データの中央値、ばらつきを可視化するための図です。

『中央値』とは、例えば、11個の数値からなる集合があったとき、大きさが上から数えて6番目(下から数えても6番目の大きさ)の数値です。

同様に、『第1四分位数』は、下から数えて3番目の数の値です。

『第3四分位数』は、上から数えて3番目の数の値です。

https://udemy.benesse.co.jp/office-enhance/microsoft-office/box-and-whisker-plot.html
2018/06/25
箱ひげ図の概念から作り方まで、わかりやすく解説!
→箱ひげ図の説明と、エクセルでの描画方法がのっています。お勧めです。

https://mathwords.net/tyuouchi
中央値の意味と求め方、偶数の場合
最終更新日 2019/04/13

https://kazutan.github.io/fukuokaR11/intro_ggplot2.html#box_plot
ggplot2による可視化入門
fukuoka.R #11
kazutan
2018/9/15

Rでbeesworm蜂群図(ほうぐんず)のリンク

beesworm蜂群図(ほうぐんず)とは、数値からなる集合があったとき、それを全て点などで表示したものです。

https://wikidocs.net/40935
(04) Exercise » geom_dotplot

# beesworm 蜂群図(ほうぐんず)
# https://wikidocs.net/40935
ggplot(airquality, aes(x = factor(Month), y = Wind)) +
  geom_dotplot(binaxis = "y", stackdir = "center")

https://ninosanpo.hatenablog.com/entry/2018/08/03/141738
2018-08-03
Rmarkdownで蜂群図(ほうぐんず)を書いてみよう!

https://rpubs.com/nishikosh/ggplot2
ggplot2を用いてグラフ作成
S.Konishi
2019-01-18

Rで平均値と標準偏差のグラフのリンク

https://www.biodr-goro.com/entry/2019/04/24/224904
ggplot2でお絵かき:プロット+平均値+標準偏差を示す
20200622

論文用の白黒の図の作成とtheme_classic()

https://qiita.com/uri/items/615653e83642d7e475de
@uri
2015年06月08日に更新
学会発表のためのggplot2の設定めも

https://gist.github.com/soh-i/6332270
ggplotの図を透明背景にする

https://note.mu/shigeruhanano/n/n1e1333f293b2
Rのggplot2でグラフを描く
Shigeru Hanano (花野 滋)
2018/10/02 15:58

cowplot…

ソースコード

https://colab.research.google.com/drive/1Jv0eQ0g7K09FfQvUIN4U5ewEW5qphZLV?hl=ja

リンク

目次:初めての医療統計RとEZR

前:06.Google Colaboratoryで時系列データで折れ線グラフを描画

次: