ユーザ用ツール

サイト用ツール


rnotebookで折れ線グラフ

R Notebookで折れ線グラフと誤差

基本的に、Excelで折れ線グラフと誤差に記載させていただいた方法でExcelを用いて描く法が圧倒的に早いです。しかし、見栄えを細かく設定したい場合は、Rを用いてグラフを描くとよいと思われます。かなり面倒ですが、慣れてくると、おそらく、楽しくなってくると思われます。

開発環境

Windows 8.1 Pro (64-bit)

R Studio 1.1.383

1.データの準備

エクセルに書き込んでいくのですが、1行目にIDや年齢、糖尿病DMの有無などの項目を並べていき、2行目からは各症例の生データを打ち込んでいきます。できれば、項目もデータも『半角英数字』が望ましいです。もし欠損データがある場合は、『NA』と入力します。

今回は、以下のようなデータを用意します。糖尿病の7症例の3ヶ月間のHbA1c[%]の推移のデータだとします。

ID age sex DM HbA1c00M HbA1c01M HbA1c02M HbA1c03M
00001 56 M 1 7.3 7.4 7.3 7.4
00002 77 F 1 8.3 8.4 8.3 8.2
00003 68 M 1 7.1 7.0 7.0 7.0
00004 81 F 1 7.6 7.4 7.3 7.4
00005 42 M 1 10.1 8.4 7.3 6.5
00006 65 M 1 6.1 6.2 6.2 6.3
00007 68 F 1 7.8 7.4 7.9 8.4

エクセルの画面では以下のようになります。

上記のエクセルファイルは、以下からダウンロードできます。

book2.xlsx

このHbA1cの平均の折れ線グラフと、各月における標準偏差をグラフに書き込みをしたいと思います。

ファイル > 名前をつけて保存 >  「CSV(コンマ区切り)(*.csv)」を選択して、「保存」をクリック。

すると、book2.csv というファイルが保存される。

book2.csvは、以下をテキストファイルにコピーしてからbook2.csvという名前で保存していただけますと、利用できます。

ID,age,sex,DM,HbA1c00M,HbA1c01M,HbA1c02M,HbA1c03M
1,56,M,1,7.3,7.4,7.3,7.4
2,77,F,1,8.3,8.4,8.3,8.2
3,68,M,1,7.1,7,7,7
4,81,F,1,7.6,7.4,7.3,7.4
5,42,M,1,10.1,8.4,7.3,6.5
6,65,M,1,6.1,6.2,6.2,6.3
7,68,F,1,7.8,7.4,7.9,8.4

2.折れ線グラフの作成

R Studioで、File > New File > R Notebook をクリック

File > Save As で、今回は、171028_002 と入力して保存。

その後、下図のような位置にある、“Insert”>“R” で、「チャンク」を挿入。

以下のようにグレーの部分が表示されるので、グレーの部分の中身に、Rのコードを記入。

Rのコード

# データの読み込み
x <- read.csv("book2.csv")
head(x)

次に、そのコードを書いたチャンク(グレーの部分)の右上の、緑色の三角ボタンをクリック

すると、そのチャンク内のコードが実行される。

さらに、次の行に新しいチャンクを作成して、以下のコードを記載。

# csvファイルの読み込み
x <- read.csv("book2.csv")

# (x,y)の値の指定
x1 <- c(0, 1, 2, 3)
y1 <- c(mean(x$HbA1c00M), mean(x$HbA1c01M), mean(x$HbA1c02M), mean(x$HbA1c03M))

# 高水準関数plotで、座標面を記載
plot(0, 0, type = "n", xaxt="n", xlim = range(x1), ylim = c(0, max(x[,5:8])),
     xlab = "Month", ylab = "HbA1c")

# 低水準関数pointsとlinesで、上で作った座標面に折れ線グラフを追加記載
m <- apply(x[,5:8], 2, mean)
s <- apply(x[,5:8], 2, sd)
points(x1, m, pch=16)
lines(x1, m)

# 低水準関数arrowsで、標準偏差を追加記載
arrows(x1, m + s, x1, m - s, angle = 90, length = 0.1)
arrows(x1, m - s, x1, m + s, angle = 90, length = 0.1)  

axis(1, at=0:3, labels=c("0M", "1M", "2M", "3M"))

上の方の、Preview または、Knit To HTMLをクリック。

保存したいグラフを右クリックして、“Copy Image”をクリック。

Powerpointか何かを開いて、“Ctrl+V”でペースト。

なんだかExcelで折れ線グラフと誤差と比べて非常に面倒ですが、がんばって勉強すれば、エクセルよりも自由度が高そうです。

参考文献

誤差範囲

折れ線グラフにエラーバーをつける方法

https://stats.biopapyrus.jp/r/graph/errorbar.html

ggplot2用例集 入門編 - SlideShare

https://www.slideshare.net/mobile/nocchi_airport/ggplot2-62471507

論文の図の作成

グラフ描画ggplot2の辞書的まとめ20のコード

https://mrunadon.github.io/ggplot2/

→このサイトのコードをコピペするのが簡単か。

ggplot2 まとめ: 初歩から程よいレベルまで - Mr.Unadon -

https://mrunadon.github.io/images/geom_kazutanR.html

論文用の棒グラフと折れ線グラフをggplot2で描く

https://mrunadon.github.io/ThesisPlot/

ggplotで論文用のthemeを作成する

http://qh73xebitbucketorg.readthedocs.io/ja/latest/1.Programmings/r/library/ggplot/tips/reportTheme/

スクリプト冒頭で “library(grid)” とすれば良い

2012-12-18
『心理学研究』に準拠したggplot2のtheme

http://m884.hateblo.jp/entry/2012/12/18/152040

連載

R Markdownで楽々レポートづくり

http://gihyo.jp/admin/serial/01/r-markdown

2017-12-07

Rで横軸が時系列のグラフを書く

http://touch-sp.hatenablog.com/entry/2017/12/07/074914

R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
2016年11月24日

http://bioinfo-dojo.net/2016/11/24/various_axis_r/

R でプログラミング:データの一括処理とグラフ描き

6. グラフの重ね描き

http://takenaka-akio.org/doc/r_auto/chapter_06.html

リンク

rnotebookで折れ線グラフ.txt · 最終更新: 2018/10/07 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki