#r #ggplot2
#r #ggplot2
Вопрос:
Я строю линейный график с доверительным интервалом 95, однако я бы хотел, чтобы диапазон 95CI для одного условия можно было визуализировать как ленту, а не панель ошибок, чтобы показать диапазон верхних и нижних границ.
Приведенный ниже код показывает линейный график с 95CI.
df1<-structure(list(subject = c("S11", "S11", "S11", "S11", "S11",
"S12", "S12", "S12", "S12", "S12", "S12"), condition = c("placebo",
"placebo", "placebo", "placebo", "placebo", "Drug1", "Drug1",
"Drug1", "Drug1", "Drug1", "Drug1"), Day = c(1, 2, 3, 4, 5, 1,
2, 3, 4, 5, 6), Effect = c(-0.053, 0.02831,
0.056, 0.450, 0.29, 0.011,
-0.039, -0.01293, 0.042,
-0.01568, 0.080)), row.names = c(NA,
-11L), class = c("tbl_df", "tbl", "data.frame"))
ggplot(df1,
aes(x=Day,y=Effect,color= condition ,fill= condition))
stat_summary(fun.y="mean", geom="line",size=1.5,alpha=1)
stat_summary(fun.y ='mean',geom ="point", size = 1,alpha=0.8,show.legend = FALSE)
#geom_ribbon(aes(ymin=min.Uv, ymax=max.Uv), alpha=0.7,fill='yellow', colour=NA)
stat_summary(fun.data = mean_cl_normal, geom = "errorbar", fun.args = list(mult = 1),size=1)
Строка, которая была прокомментирована выше ( geom_ribbon(aes(ymin=min.Uv, ymax=max.Uv)
), используется в качестве визуализации 95CI другого условия.
Мне интересно, есть ли более эффективный способ сделать это, поскольку функция fun.data = mean_cl_normal
делает то же самое.
Итак, я реализую fig1
другой рисунок, который разделяет похожую грамматику построения, но отличается по gemo='smooth'
. Главный вопрос, можно ли заменить ( geom_ribbon(aes(ymin=min.Uv, ymax=max.Uv)
), добавив другой график с gemo='smooth'
, чтобы показать диапазон 95CI?
df2<-structure(list(subject = c("S02", "S02", "S02", "S02", "S02"),
condition = c("Drug2", "Drug2", "Drug2", "Drug2", "Drug2"
), Day = c(1, 2, 3, 4, 5), Effect = c(1.6592, 1.8384,
1.809, 1.807, 1.651)), row.names = c(NA,
-5L), class = c("tbl_df", "tbl", "data.frame"))
fig1 stat_summary(data=df2,aes(x=Day,y=Effect),
fun.data ="mean_cl_normal", geom = "smooth", , fun.args = list(mult = 1))
Я получил наложенную линейную диаграмму, но отсутствует лента / сглаживание. Любой комментарий очень ценится!
Комментарии:
1. Моя рекомендация заключалась бы в том, чтобы вычислить все необходимые данные за пределами ggplot, а затем использовать их только для построения графика.