【R】ggplot2で単一の折れ線グラフを描くときはaes()の中にgroup=1を記入する!
ggplot2で折れ線グラフを描こうとして、
geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
のようなエラーが出て、うまくいかなくて発狂しそうになりました。これは、
library(tidyverse)
BOD_1 <- BOD
BOD_1$Time <- factor(BOD_1$Time)
str(BOD_1)
g <- ggplot(BOD_1, aes(x=Time, y=demand, group = 1)) +
geom_line()
g
のようにコードを書くことが解決できます。aes(x=Time, y=demand)の y=demand の後に、",group=1″と書いて、
aes(x=Time, y=demand, group = 1)
を記載するところがポイントです。その行は以下のようになります。
g <- ggplot(BOD_1, aes(x=Time, y=demand, group = 1)) +
なお、いますぐRプログラミングをする方法(googleアカウントがあれば3秒でできます)については以下をご覧ください。
以下に詳細を記載してみました。
ソースコード(Google colaboratory)
https://colab.research.google.com/gist/adash333/0f3f92e0d1676d27a5985c57a0eff1e6/200725_.ipynb
ggplot2リンク
00.初めての医療統計rとezr:06.colaboratoryでrで折れ線グラフ
http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/
ggplot2のキホン
https://mrunadon.github.io/images/geom_kazutanR.html
ggplot2でgroup=1についてのエラー関連のリンク
GoogleColabでR入門のリンク
https://htsuda.net/stats/colab.html
Rで2系列の折れ線グラフを描くとき
折れ線グラフのエラーバーがse(標準誤差)であれば、stat_summary を用いる方法が簡単。
折れ線グラフのエラーバーがsd(標準偏差)にしたい場合は、
summary_d <- d %>%
group_by(supp, dose) %>%
summarize(
length = mean(len),
sd = sd(len)
)
summary_d
のようにして、
ggplot(
summary_d,
aes(x = dose, y = length, linetype = supp )) +
geom_line() +
geom_point() +
geom_errorbar(aes(ymax = length + sd, ymin = length - sd), width = 0.1) +
theme_classic()
がお勧めです。
ものによっては
ggplot(summary_d, aes(x = time, y = HbA1c_mean, linetype = sex , group = sex, shape = sex )) +
geom_line() +
geom_point() +
scale_shape_manual(values=c(1,15)) +
scale_y_continuous(limits = c(0,10)) +
geom_errorbar(aes(ymax = HbA1c_mean + HbA1c_sd, ymin = HbA1c_mean - HbA1c_sd), width = 0.1) +
theme_classic()
と記載することもあります。
具体例は以下に記載しました。
ディスカッション
コメント一覧
まだ、コメントがありません