はじめに
こんな感じのデータがありました
xは時期 as.Date(“2024-03-08”)とかの値が入っているベクター
cancer はc(“GC”, “BC”) がん種の値が入ったベクター
y は表示したい値(平均値とか頻度とか)
low/hight はエラーバーの上限・下限(95%信頼区間とか)
何がしたいのか
データフレームをがん種別に作成した後に、それらを一つのグラフで表示したくなった
library(ggplot2)
library(ggsci)
library(scales)
BC_data_frame <- data.frame(x, cancer, y, low, high) # BCとGCでそれぞれのベクターには
GC_data_frame <- data.frame(x, cancer, y, low, high) # 異なる値が入っている
combined_data_frame <- rbind(BC_data_frame, GC_data_frame)
g5 <- ggplot(combined_data_frame, aes(x, y, color = cancer)) +
geom_smooth(aes(ymin = low, ymax = high), alpha = 0.2) +
scale_color_nejm() +
geom_point() +
geom_errorbar(aes(ymin = low, ymax = high), width = 10) +
scale_x_date(limits = c(as.Date("2020-05-15"), as.Date("2024-01-31")), oob = oob_keep) +
scale_y_continuous(limits = c(0, 0.2), oob = oob_keep)
plot(g5)
ど
どうしたらどうなった
rbindで結合して、そのままプロットしたら2系列が分かれて表示された
全体はこんな感じ
setwd("C:/Users/****") library(ggplot2) library(ggsci) library(scales) x <- seq(as.Date("2020-06-01"), as.Date("2024-01-01"), by = "month") k1 <- binom.test(1, 11); y <- c(k1$estimate); low <- c(k1$conf.int[1]); high <- c(k1$conf.int[2]) k2 <- binom.test(1, 19); y <- c(y, k2$estimate); low <- c(low, k2$conf.int[1]); high <- c(high, k2$conf.int[2]) # ... データ個所は中略 k43 <- binom.test(12, 135); y <- c(y, k43$estimate); low <- c(low, k43$conf.int[1]); high <- c(high, k43$conf.int[2]) k44 <- binom.test(11, 131); y <- c(y, k44$estimate); low <- c(low, k44$conf.int[1]); high <- c(high, k44$conf.int[2]) cancer <- rep("GC", 44) GC_data_frame <- data.frame(x, cancer, y, low, high) k1 <- binom.test(0, 12); y <- c(k1$estimate); low <- c(k1$conf.int[1]); high <- c(k1$conf.int[2]) k2 <- binom.test(0, 118); y <- c(y, k2$estimate); low <- c(low, k2$conf.int[1]); high <- c(high, k2$conf.int[2]) # ... データ個所は中略 k43 <- binom.test(2, 302); y <- c(y, k43$estimate); low <- c(low, k43$conf.int[1]); high <- c(high, k43$conf.int[2]) k44 <- binom.test(3, 279); y <- c(y, k44$estimate); low <- c(low, k44$conf.int[1]); high <- c(high, k44$conf.int[2]) cancer <- rep("BC", 44) BC_data_frame <- data.frame(x, cancer, y, low, high) combined_data_frame <- rbind(BC_data_frame, GC_data_frame) g5 <- ggplot(combined_data_frame, aes(x, y, color = cancer)) + geom_smooth(aes(ymin = low, ymax = high), alpha = 0.2) + labs (title = "xxxxx in GC/BC") + labs(subtitle = "xxxxx") + labs( x = "Calendar time", y = "Proportion of report per exposure", caption = "Error bars indicate 95% confidence interval calculated with Clopper and Pearson's method" ) + scale_color_nejm() + geom_point() + geom_errorbar(aes(ymin = low, ymax = high), width = 10) + scale_x_date(limits = c(as.Date("2020-09-15"), as.Date("2024-02-01")), oob = oob_keep) + scale_y_continuous(limits = c(0, 0.3), oob = oob_keep) plot(g5)