動画
https://web.microsoftstream.com/video/1cbca9e0-a682-4c1f-95da-c059da6688b0
資料
http://goo.gl/fxv87m

Rをつかってグラフを作成する方法を学ぶ

はいじめ グラフ作成と論文化の話題

某研究論文に掲載されたグラフに対する議論: http://letsseq.hatenablog.com/entry/2016/09/07/113759
Natureに掲載された元論文: https://www.nature.com/articles/nature01705

以下引用

以下、問題の論文より。 (赤字や赤い線・矢印はブログ主によって付け加えました)
Fig2f エラーバーが斜めになっている. 横棒のみならず縦棒も傾いている。(赤線が水平)

Fig2f

Fig2f

Fig2e 丸いプロットの後ろに何か居る。
エラーバーの横棒も浮いている。

Fig2e

Fig2e

Fig3a プロットの位置と曲線がズレまくり。

Fig3a

Fig3a

肉眼だけでもグラフやチャートがエクセルなどのソフトウエアを使って、正しく作成されたものではないと判断できる。

グラフを作成してpptで描画を修正などで捏造を疑われる時代
再現性を担保するためにはデータ→結果,グラフまでの過程を記録,再現可能なものにしないといけない.

グラフ作成の基礎

グラフの大きな2つの役割
* データの状況を大雑把に把握すること
* 結果をわかりやすく説明すること

演習 グラフを書いてみる

講義レジュメのあるサイトからData_1.csvを入手

ファイル名は"”で囲むのを忘れない

getwd()
## [1] "C:/Users/ryohe/R lecture by Shiraishi"
Dataset_1<-read.csv("Dataset_1.csv") #読みむ
head(Dataset_1)
##            a          b
## 1  43.408414  3.0366870
## 2   5.404081  1.8911554
## 3  14.719750  3.2940166
## 4  18.228744 -0.3423289
## 5   7.307175 -1.6425974
## 6 -15.822494 -1.3053309

ヒストグラムを書いてみる

hist(Dataset_1$a)

hist(Dataset_1$b)

箱ひげ図を書いてみる

boxplot(Dataset_1$a,Dataset_1$b) 

しかしこれらのグラフには軸名や凡例がたらない.
凡例や軸を指定する.

関数 指定するももの
xlim x軸の上限下限
ylim y軸の上限下限
xlab X軸のラベル名
main メインのグラフ名
hist(Dataset_1$a, 
     xlim = c(-50,50), ylim = c(0,200), 
     xlab = "Value A", main="Histgram")

図を重ね合わせてみる

図を重ね合わせるには,関数 par()
par(new = T)とするとグラフが追加される
引数 xlim と ylimをあわせるなどのちょっとした注意が要る.
参考
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/49.html

par(new = F)
hist(Dataset_1$a, 
     xlim = c(-50,50), ylim = c(0,200), 
     xlab = "Value A", main="Histgram")
par(new = T)
hist(Dataset_1$b, 
     xlim = c(-50,50), ylim = c(0,200), 
     xlab = "Value B", main="Histgram")

Rの描画関数は様々なオプションが指定できる.
R-tipsを見てみてやるのが良いでしょう.
参照: とりあえずplot()
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/48.html

ファイルの保存

plotのExportで出力できる.

ggplot2

作成者はHadley Wickmanでモダンなグラフ描画パッケージ

グラフに関わる要素
1 Data: 基となるデータ
2 Mapping: 数値,軸,色,太さの対応
3 Graph object: それをどんなグラフで書くかの定義
の3つがあればグラフがかける

ggplotを初めて使う場合はggplotをインストールしておくこと
install.packages(“ggplot2”)

ではirisのデータをつかって練習してみる irisというデータ irisの中のSpeciesはX軸,Sepal.wWidthはy軸,Speciesで色分けする

library("ggplot2")
## Warning: package 'ggplot2' was built under R version 3.5.3
g<-ggplot(data= iris,
          aes(x=Species, y=Sepal.Width,
              color = Species))
g<-g+geom_boxplot()
g

ggplot演習

“mpg.csv”を用いてグラフを作成し ggplotよう

mpg<-read.csv("mpg.csv")
head(mpg)
##   X manufacturer model displ year cyl      trans drv cty hwy fl   class
## 1 1         audi    a4   1.8 1999   4   auto(l5)   f  18  29  p compact
## 2 2         audi    a4   1.8 1999   4 manual(m5)   f  21  29  p compact
## 3 3         audi    a4   2.0 2008   4 manual(m6)   f  20  31  p compact
## 4 4         audi    a4   2.0 2008   4   auto(av)   f  21  30  p compact
## 5 5         audi    a4   2.8 1999   6   auto(l5)   f  16  26  p compact
## 6 6         audi    a4   2.8 1999   6 manual(m5)   f  18  26  p compact
g2 <- ggplot(data = mpg,
           aes(x = as.factor(cyl)))+
  geom_boxplot(aes(y=cty), color="red")+
  geom_point(aes(y=cty),color="blue")+
  theme_bw() +
  ggplot2::xlab("CYLです")
g2