r - 考虑ggplot2中不同标准误差的剖面图
问题描述
我试图通过引入标准误差以及每个时间的平均值来制作剖面图。出于某种原因,假设标准误差每次都是相同的(如下所示,这是不正确的)。如何在下图中为每个时间引入正确的标准误差?
代码:
library(PMCMR)
library(ExpDes.pt)
library(RColorBrewer)
library(tidyverse)
t1=tapply(dados$RespostaForca, dados$Tempo, describe)[[1]]$se
t2=tapply(dados$RespostaForca, dados$Tempo, describe)[[2]]$se
t3=tapply(dados$RespostaForca, dados$Tempo, describe)[[3]]$se
t4=tapply(dados$RespostaForca, dados$Tempo, describe)[[4]]$se
t5=tapply(dados$RespostaForca, dados$Tempo, describe)[[5]]$se
###########################################
####### Different standard errors #########
###########################################
standterr=c(t1,t2,t3,t4,t5); standterr
[1] 0.4326902 0.6871646 0.8456485 0.8299386 0.6416116
interact <- dados %>%
select(RespostaForca, Tempo, Grupos) %>%
group_by(Grupos, Tempo) %>%
summarise(Average = mean(RespostaForca),
y_se = psych::describe(dados$RespostaForca)$se)
###########################################
############### Graph #####################
###########################################
x11()
graf=ggplot(interact, aes(x=Tempo, y=Average)) +
ggtitle("") + geom_point(col="black", size=2, aes(shape=Grupos)) +
geom_line(aes(color=Grupos),size=1.1) +
geom_errorbar(aes(ymin = Average-1.96*y_se,
ymax = Average+1.96*y_se),
width = .1) +
labs(fill="Grupos: ", x="Tempo",
y="Força de Retenção (N)") + scale_fill_manual(values = c("#1B9E77","#D95F02")) +
theme(legend.title = element_text(size = 22),legend.text = element_text(size = 22),
axis.text.x = element_text(color = "black", hjust=1),
axis.title = element_text(size = 22),
axis.text = element_text(size = 25))
graf+scale_color_manual(values=c("black","#D95F02", "#56B4E9"))
图片:
解决方案
试试这个方法。该问题与使用dados$RespostaForca
常量有关,而仅放置变量:
library(PMCMR)
library(ExpDes.pt)
library(RColorBrewer)
library(tidyverse)
#Data
dados <- read.delim('data.csv',stringsAsFactors = F,sep=';')
#Process
interact <- dados %>%
select(RespostaForca, Tempo, Grupos) %>%
group_by(Grupos, Tempo) %>%
summarise(Average = mean(RespostaForca),
y_se = psych::describe(RespostaForca)$se)
#Plot
ggplot(interact, aes(x=Tempo, y=Average)) +
ggtitle("") + geom_point(col="black", size=2, aes(shape=Grupos)) +
geom_line(aes(color=Grupos),size=1.1) +
geom_errorbar(aes(ymin = Average-1.96*y_se,
ymax = Average+1.96*y_se),
width = .1) +
labs(fill="Grupos: ", x="Tempo",
y="Força de Retenção (N)") + scale_fill_manual(values = c("#1B9E77","#D95F02")) +
theme(legend.title = element_text(size = 22),legend.text = element_text(size = 22),
axis.text.x = element_text(color = "black", hjust=1),
axis.title = element_text(size = 22),
axis.text = element_text(size = 25)) +
scale_color_manual(values=c("black","#D95F02", "#56B4E9"))
输出:
推荐阅读
- sql - add specific constraints to table
- javascript - JS 无法读取远程源
- vba - 将 VBA 变量设置为 AutoFiltered 单元格的值
- java - java - 如何确定在Java中的JButton ActionPerformed上是否按下了左/右或中键?
- c# - 为什么当我单击按钮时我的数据没有进入我的 SQL 数据库?
- kdb - KDB中的零感知协方差矩阵
- python - 从Python中的字符串中提取连续的数字字符
- redux - 如何在 redux 中捕获无效的操作类型
- jenkins - 在 jenkins 中调用 Ansible 角色
- r - 如何与R中的下一行进行计算和比较