ggplot2で論文用の白黒折れ線グラフ
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
ggplot2で論文用の白黒折れ線グラフ [2020/08/12] – [ソースコード] adash333 | ggplot2で論文用の白黒折れ線グラフ [2020/08/12] (現在) – [ggplot2で論文用の白黒折れ線グラフ] adash333 | ||
---|---|---|---|
行 1: | 行 1: | ||
====== ggplot2で論文用の白黒折れ線グラフ ====== | ====== ggplot2で論文用の白黒折れ線グラフ ====== | ||
+ | |||
+ | [[初めての医療統計: | ||
ggplot2(tidyverse)では、カラーのきれいなグラフを出力してくれるのはありがたいのですが、論文用には白黒のグラフを作成したい場合が多いです。 | ggplot2(tidyverse)では、カラーのきれいなグラフを出力してくれるのはありがたいのですが、論文用には白黒のグラフを作成したい場合が多いです。 | ||
行 7: | 行 9: | ||
===== ソースコード ===== | ===== ソースコード ===== | ||
- | https:// | + | https:// |
+ | |||
行 38: | 行 42: | ||
- | ===== 1.サマリー作成用の関数の定義 | + | ===== 1.グラフ作成用に平均と標準偏差を計算 |
ggplot2()でグラフを記載する前に、データを整理する必要があります。 | ggplot2()でグラフを記載する前に、データを整理する必要があります。 | ||
- | Plotting means and error bars (ggplot2)\\ | + | dplyr(tidyverse)の |
- | http:// | + | -<wrap hi> |
+ | -<wrap hi> | ||
+ | を用いて、グループごとに、個数、平均、標準偏差を計算して新しい表を作成します。 | ||
< | < | ||
- | summarySE <- function(data=NULL, | + | library(tidyverse) |
- | conf.interval=.95, | + | |
- | | + | |
- | # New version of length which can handle NA's: if na.rm==T, don't count them | + | head(ToothGrowth) |
- | length2 <- function | + | str(ToothGrowth) |
- | | + | |
- | else | + | |
- | } | + | |
- | # This does the summary. For each group' | + | d <- ToothGrowth %>% |
- | | + | group_by(supp, dose) %>% |
- | | + | summarise( |
- | | + | |
- | c(N | + | |
- | mean = mean | + | |
- | | + | ) |
- | | + | # 蛇足だが、以下の書き方はsdがNAになってしまうので注意 |
- | }, | + | # https:// |
- | measurevar | + | # summarise(n=n(), len=mean(len), sd=sd(len)) |
- | ) | + | d |
- | # Rename the " | + | pd <- position_dodge(0.1) # move them .05 to the left and right |
- | datac <- rename(datac, c(" | + | |
- | datac$se <- datac$sd / sqrt(datac$N) # Calculate standard error of the mean | + | ggplot(d, aes(x=dose, y=mean_len, shape=supp)) + |
- | + | | |
- | | + | |
- | # Calculate t-statistic for confidence interval: | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | return(datac) | + | |
- | } | + | |
</ | </ | ||
===== 2.白黒の折れ線グラフの作成 ===== | ===== 2.白黒の折れ線グラフの作成 ===== | ||
+ | |||
+ | 上記で作成した表dを用いて、ggplot()関数でグラフを描きます。 | ||
< | < | ||
- | library(tidyverse) | ||
- | |||
- | tg <- ToothGrowth | ||
- | tgc <- summarySE(tg, | ||
- | |||
pd <- position_dodge(0.1) # move them .05 to the left and right | pd <- position_dodge(0.1) # move them .05 to the left and right | ||
- | ggplot(tgc, aes(x=dose, y=len, shape=supp)) + | + | ggplot(d, aes(x=dose, y=mean_len, shape=supp)) + |
- | theme_set(theme_classic()) + | + | theme_set(theme_classic()) + |
- | geom_point(size=4, | + | geom_point(size=4, |
- | geom_errorbar(aes(ymin=len-se, ymax=len+se), width=.1, position=pd) + | + | geom_errorbar(aes(ymin=mean_len-sd_len, ymax=mean_len+sd_len), width=.1, position=pd) + |
- | geom_line(aes(linetype = supp), position=pd) | + | geom_line(aes(linetype = supp), position=pd) |
+ | # グラフにタイトルをつける | ||
+ | ggtitle(" | ||
+ | theme(plot.title = element_text(hjust=0.5)) + | ||
+ | theme(plot.title = element_text(size = 20), | ||
+ | axis.title.x = element_text(size= 20), | ||
+ | axis.title.y = element_text(size= 20), | ||
+ | axis.text.x = element_text(size= 20), | ||
+ | axis.text.y = element_text(size= 20) | ||
+ | ) + | ||
+ | # y軸のラベルの書き換え | ||
+ | labs(y=" | ||
</ | </ | ||
以下のようなグラフが出力されます。 | 以下のようなグラフが出力されます。 | ||
- | {{:pasted: | + | {{ :ダウンロード.png |}} |
===== 3.グラフをpngファイルで出力 ===== | ===== 3.グラフをpngファイルで出力 ===== |
ggplot2で論文用の白黒折れ線グラフ.txt · 最終更新: 2020/08/12 by adash333