ggplot2で折れ線グラフ
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| ggplot2で折れ線グラフ [2017/12/22] – [開発環境] adash333 | ggplot2で折れ線グラフ [2020/05/23] (現在) – [ggplot2で折れ線グラフ] adash333 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ===== ggplot2で折れ線グラフ ===== | ===== ggplot2で折れ線グラフ ===== | ||
| + | [[初めての医療統計: | ||
| 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ですと、左下の画面内に" | ||
| + | |||
| + | < | ||
| + | install.packages(" | ||
| + | </ | ||
| + | |||
| ===== 1.ExcelデータからR読み込み用csvファイルの作成 ===== | ===== 1.ExcelデータからR読み込み用csvファイルの作成 ===== | ||
| 行 55: | 行 67: | ||
| + | ===== 2.csvファイルの読み込み ===== | ||
| + | R Studioの画面で、" | ||
| + | {{: | ||
| + | |||
| + | 下のような画面になる | ||
| + | |||
| + | {{: | ||
| + | |||
| + | チャンクの部分(灰色の部分)に、以下のように記載。 | ||
| + | |||
| + | < | ||
| + | x <- read.csv(" | ||
| + | x | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | チャンクの右側の三角ボタンをクリックして、チャンク内のコードを実行。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | 以下のようになる。 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== 3.元データを整然データに変換(gather関数)===== | ||
| + | |||
| + | ggplot関数を用いてグラフを描画するためには、元データを『整然データ』(tidy data)に変換する必要があります。 | ||
| + | |||
| + | 整然データ" | ||
| + | |||
| + | 整然データとは何か | ||
| + | http:// | ||
| + | |||
| + | R Studioの画面で、画面右上の方の、" | ||
| + | |||
| + | < | ||
| + | library(tidyverse) | ||
| + | |||
| + | x <- read.csv(" | ||
| + | |||
| + | data_plot_individuals <- x %>% | ||
| + | gather(key, value, -ID, -age, -sex, -DM) | ||
| + | data_plot_individuals | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | ===== 4. グラフ描画のコードを記載(ggplot関数) ===== | ||
| + | |||
| + | 各患者でHbA1cの時系列の折れ線グラフ(IDでグループ分け) | ||
| + | |||
| + | < | ||
| + | library(tidyverse) | ||
| + | |||
| + | x <- read.csv(" | ||
| + | |||
| + | data_plot_individuals <- x %>% | ||
| + | gather(key, value, -ID, -age, -sex, -DM) | ||
| + | |||
| + | a <- ggplot(data_plot_individuals, | ||
| + | geom_line() | ||
| + | a | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | IDが数値扱いになり、色分けが変な風になってしまう。\\ | ||
| + | そのため、as.character()関数を用いて、IDを文字列として認識させてから、ggplot関数でグラフを描画します。 | ||
| + | |||
| + | < | ||
| + | library(tidyverse) | ||
| + | |||
| + | x <- read.csv(" | ||
| + | x$ID <- as.character(x$ID) | ||
| + | x | ||
| + | |||
| + | data_plot_individuals <- x %>% | ||
| + | gather(key, value, -ID, -age, -sex, -DM) | ||
| + | |||
| + | a <- ggplot(data_plot_individuals, | ||
| + | geom_line() | ||
| + | a | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 男女で平均とSDを求める ==== | ||
| + | |||
| + | < | ||
| + | library(tidyverse) | ||
| + | |||
| + | x <- read.csv(" | ||
| + | x$ID <- as.character(x$ID) | ||
| + | x | ||
| + | |||
| + | data_plot_individuals <- x %>% | ||
| + | gather(key, value, -ID, -age, -sex, -DM) | ||
| + | |||
| + | group_time_mean_sd <- data_plot_individuals %>% | ||
| + | group_by(sex, | ||
| + | summarize(mean = mean(value), | ||
| + | group_time_mean_sd | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 男女で平均とSDを求めて折れ線グラフ ==== | ||
| + | |||
| + | < | ||
| + | library(tidyverse) | ||
| + | |||
| + | x <- read.csv(" | ||
| + | x$ID <- as.character(x$ID) | ||
| + | x | ||
| + | |||
| + | data_plot_individuals <- x %>% | ||
| + | gather(key, value, -ID, -age, -sex, -DM) | ||
| + | |||
| + | group_time_mean_sd <- data_plot_individuals %>% | ||
| + | group_by(sex, | ||
| + | summarize(mean = mean(value), | ||
| + | |||
| + | b <- ggplot(group_time_mean_sd, | ||
| + | geom_line() | ||
| + | b | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 折れ線グラフにエラーバーをつける ==== | ||
| + | |||
| + | < | ||
| + | library(tidyverse) | ||
| + | |||
| + | x <- read.csv(" | ||
| + | x$ID <- as.character(x$ID) | ||
| + | x | ||
| + | |||
| + | data_plot_individuals <- x %>% | ||
| + | gather(key, value, -ID, -age, -sex, -DM) | ||
| + | |||
| + | group_time_mean_sd <- data_plot_individuals %>% | ||
| + | group_by(sex, | ||
| + | summarize(mean = mean(value), | ||
| + | |||
| + | b <- ggplot(group_time_mean_sd, | ||
| + | geom_line() | ||
| + | |||
| + | errors <- aes(ymax = mean + sd, ymin = mean - sd) | ||
| + | b <- b + geom_errorbar(errors, | ||
| + | b | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| ===== 参考文献 ===== | ===== 参考文献 ===== | ||
| + | ggplot2 — きれいなグラフを簡単に合理的に\\ | ||
| + | https:// | ||
| + | |||
| + | Plotting means and error bars (ggplot2)\\ | ||
| + | http:// | ||
| 2016-08-22 | 2016-08-22 | ||
| 行 89: | 行 262: | ||
| < | < | ||
| library(tidyverse) | library(tidyverse) | ||
| - | library(ggplot2) | ||
| </ | </ | ||
| - | してから、tidyrパッケージのgather()関数を用いると良さそうです。(最初はこんなことを言われても訳わかんないと思いますので、具体例で解説させていただきたいと思います。) | + | してから、tidyrパッケージのgather()関数を用いるのがお勧めです。このページでは具体例を用いて解説させていただいています。なお、ggplot2は、tidyverseパッケージに含まれています。 |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| 行 109: | 行 276: | ||
| </ | </ | ||
| - | ===== リンク ===== | + | ggplot2を用いたグラフの描き方については、以下の本が非常にお勧めです。 |
| - | 次: | + | <html> |
| - | <wrap hi> | + | |
| - | [[]] | + | |
| - | </ | + | |
| - | 前: | + | <iframe style=" |
| - | <wrap hi> | + | </html> |
| - | [[RNotebookで折れ線グラフ]] | + | |
| - | </wrap>\\ | + | |
| - | [[sidebar|初めての医療統計 目次]]\\ | + | 英語ですが、以下のサイトに非常によくまとまっています。 |
| + | http:// | ||
| + | ===== リンク ===== | ||
| + | [[初めての医療統計: | ||
| + | 前:< | ||
| + | 次:[[ggplot2で論文用の白黒折れ線グラフ|ggplot2で論文用の白黒折れ線グラフ]] | ||
ggplot2で折れ線グラフ.1513938482.txt.gz · 最終更新: 2018/10/07 (外部編集)
