ユーザ用ツール

サイト用ツール


ggplot2で折れ線グラフ

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ggplot2で折れ線グラフ [2017/12/22] – [1.ExcelデータからR読み込み用csvファイルの作成] adash333ggplot2で折れ線グラフ [2020/05/23] (現在) – [ggplot2で折れ線グラフ] adash333
行 1: 行 1:
 ===== ggplot2で折れ線グラフ ===== ===== ggplot2で折れ線グラフ =====
 +[[初めての医療統計:index.html|初めての医療統計 目次]]
  
 ggplot2は、Rでグラフを描くときに便利なパッケージです。 ggplot2は、Rでグラフを描くときに便利なパッケージです。
行 25: 行 26:
 Windows 8.1 Pro (64-bit)\\ Windows 8.1 Pro (64-bit)\\
 R Studio 1.1.383 R Studio 1.1.383
 +
 +===== 0. RStudioにtidyverseをインストール =====
 +
 +tidyverseをインストールすることにより、tidyrやggplot2なども自動的にインストールされます。
 +
 +console画面(RStudioですと、左下の画面内に"console"タブがあると思います。)で、以下を入力して、tidyverseパッケージをインストールします。(ggplot2なども一緒にインストールされます。)
 +
 +<code>
 +install.packages("tidyverse")
 +</code>
 +
  
 ===== 1.ExcelデータからR読み込み用csvファイルの作成 ===== ===== 1.ExcelデータからR読み込み用csvファイルの作成 =====
行 81: 行 93:
 {{:pasted:20171217-004016.png}} {{:pasted:20171217-004016.png}}
  
-画面右上の方の、"Insert" > "R" で、新しいチャンク(灰色の部分)が挿入されるので、そちらに、以下のコ記載。+===== 3.元デ整然データに変換(gather関数)=====
  
 +ggplot関数を用いてグラフを描画するためには、元データを『整然データ』(tidy data)に変換する必要があります。
 +
 +整然データ"tidy data"については、以下のサイトの解説が非常にわかりやすいです。
 +
 +整然データとは何か
 +http://id.fnshr.info/2017/01/09/tidy-data-intro
 +
 +R Studioの画面で、画面右上の方の、"Insert" > "R" で、新しいチャンク(灰色の部分)が挿入されるので、そちらに、以下のコードを記載します。
  
 <code> <code>
 +library(tidyverse)
 +
 x <- read.csv("book2.csv") x <- read.csv("book2.csv")
-summary(x)+ 
 +data_plot_individuals <- %>% 
 +  gather(key, value, -ID, -age, -sex, -DM) 
 +data_plot_individuals
 </code> </code>
  
-作成中+{{:pasted:20171227-215513.png}} 
 + 
 + 
 +===== 4. グラフ描画のコードを記載(ggplot関数) ===== 
 + 
 +各患者でHbA1cの時系列の折れ線グラフ(IDでグループ分け) 
 + 
 +<code> 
 +library(tidyverse) 
 + 
 +x <- read.csv("book2.csv"
 + 
 +data_plot_individuals <- x %>% 
 +  gather(key, value, -ID, -age, -sex, -DM) 
 + 
 +a <- ggplot(data_plot_individuals, aes(x = key, y = value, group = ID, colour = ID)) + 
 +  geom_line() 
 +
 +</code> 
 + 
 +{{:pasted:20171227-215800.png}} 
 + 
 +IDが数値扱いになり、色分けが変な風になってしまう。\\   
 +そのため、as.character()関数を用いて、IDを文字列として認識させてから、ggplot関数でグラフを描画します。 
 + 
 +<code> 
 +library(tidyverse) 
 + 
 +x <- read.csv("book2.csv"
 +x$ID <- as.character(x$ID) 
 +
 + 
 +data_plot_individuals <- x %>% 
 +  gather(key, value, -ID, -age, -sex, -DM) 
 + 
 +a <- ggplot(data_plot_individuals, aes(x = key, y = value, group = ID, colour = ID)) + 
 +  geom_line() 
 +
 +</code> 
 + 
 +{{:pasted:20171227-220537.png}} 
 + 
 +==== 男女で平均とSDを求める ==== 
 + 
 +<code> 
 +library(tidyverse) 
 + 
 +x <- read.csv("book2.csv"
 +x$ID <- as.character(x$ID) 
 +
 + 
 +data_plot_individuals <- x %>% 
 +  gather(key, value, -ID, -age, -sex, -DM) 
 + 
 +group_time_mean_sd <- data_plot_individuals %>% 
 +  group_by(sex, key) %>% 
 +  summarize(mean = mean(value), sd=sd(value)) 
 +group_time_mean_sd  
 +</code> 
 + 
 +{{:pasted:20171227-222115.png}} 
 + 
 +==== 男女で平均とSDを求めて折れ線グラフ ==== 
 + 
 +<code> 
 +library(tidyverse) 
 + 
 +x <- read.csv("book2.csv"
 +x$ID <- as.character(x$ID) 
 +
 + 
 +data_plot_individuals <- x %>% 
 +  gather(key, value, -ID, -age, -sex, -DM) 
 + 
 +group_time_mean_sd <- data_plot_individuals %>% 
 +  group_by(sex, key) %>% 
 +  summarize(mean = mean(value), sd=sd(value)) 
 + 
 +b <- ggplot(group_time_mean_sd, aes(x=key, y=mean, group=sex, colour=sex)) + 
 +  geom_line() 
 +
 +</code> 
 + 
 +{{:pasted:20171227-222259.png}} 
 + 
 +==== 折れ線グラフにエラーバーをつける ==== 
 + 
 +<code> 
 +library(tidyverse) 
 + 
 +x <- read.csv("book2.csv"
 +x$ID <- as.character(x$ID) 
 +
 + 
 +data_plot_individuals <- x %>% 
 +  gather(key, value, -ID, -age, -sex, -DM) 
 + 
 +group_time_mean_sd <- data_plot_individuals %>% 
 +  group_by(sex, key) %>% 
 +  summarize(mean = mean(value), sd=sd(value)) 
 + 
 +b <- ggplot(group_time_mean_sd, aes(x=key, y=mean, group=sex, colour=sex)) + 
 +  geom_line() 
 + 
 +errors <- aes(ymax = mean + sd, ymin = mean - sd) 
 +b <- b + geom_errorbar(errors, width = 0.2) + geom_point(aes(colour=sex, shape=sex), size=4) 
 +
 +</code> 
 + 
 +{{:pasted:20171227-222408.png}}
 ===== 参考文献 ===== ===== 参考文献 =====
 +ggplot2 — きれいなグラフを簡単に合理的に\\
 +https://heavywatal.github.io/rstats/ggplot2.html
 +
 +Plotting means and error bars (ggplot2)\\
 +http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/
  
 2016-08-22 2016-08-22
行 123: 行 262:
 <code> <code>
 library(tidyverse) library(tidyverse)
-library(ggplot2) 
 </code> </code>
-してから、tidyrパッケージのgather()関数を用いると良さそうです。(最初はんなことを言われても訳わかんないと思いますので具体例解説させていただきたと思います。) +してから、tidyrパッケージのgather()関数を用いるのがお勧めです。このページ具体例を用いて解説させていただいています。なお、ggplot2は、tidyverseパッケージに含まれています。
- +
- +
- +
- +
  
  
行 143: 行 276:
 </html> </html>
  
-===== リンク =====+ggplot2を用いたグラフの描き方については、以下の本が非常にお勧めです。
  
-次: +<html>
-<wrap hi> +
-[[]] +
-</wrap>\\+
  
-前: +<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=twosquirrel-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4873116538&linkId=a45356b5efeff42f623fc074f71e9a97"></iframe
-<wrap hi> +</html>
-[[RNotebookで折れ線グラフ]] +
-</wrap>\\+
  
-[[sidebar|初めて医療統計 目次]]\\+英語ですが、以下サイトに非常によくまとまっています。
  
 +http://www.cookbook-r.com/Graphs/
 +===== リンク =====
 +[[初めての医療統計:index.html|初めての医療統計 目次]]
  
 +前:<wrap hi>[[RNotebookで折れ線グラフ]]</wrap>
  
 +次:[[ggplot2で論文用の白黒折れ線グラフ|ggplot2で論文用の白黒折れ線グラフ]]
  
  
  

ggplot2で折れ線グラフ.1513938547.txt.gz · 最終更新: 2018/10/07 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki