将 t 值和置信区间添加到 R 中的条形图
Add t values and confidence intervals to barplot in R
我是 R 的一个非常基础的用户,所以对于问题的简单性,或者如果缺乏表述,我预先表示歉意。
我有一个大数据集,其中有一个连续数值变量和两个因子,每个因子有 2 个水平。
这是(或多或少)基于 generated/artificial 数据重建我的数据:
wordhigh.mu <- -2
wordlow.mu <- -2.5
pswordhigh.mu <- -1.5
pswordlow.mu <- -1.5
sigma <- 0.3
wordshigh <- rnorm(50,mean = wordhigh.mu,sd=sigma)
wordslow <- rnorm(50,mean = wordlow.mu,sd=sigma)
pswordshigh <- rnorm(50,mean = pswordhigh.mu,sd=sigma)
pswordslow <- rnorm(50,mean = pswordlow.mu,sd=sigma)
value <- c(wordshigh,wordslow,pswordshigh,pswordslow)
LexicalitySample <- c(rep("Word",100),rep("Pseudoword",100))
FrequencySample <- c(rep("High",50),rep("Low",50),rep("High",50),rep("Low",50))
new.table <- data.frame(ErpMinAv=value,Lexicality=LexicalitySample,Frequency=FrequencySample)
我设法使用 ggplot 绘制了我的数据:
ExampleBarPlot <- ggplot(new.table,aes(Lexicality,ErpMinAv,fill=Frequency)) + geom_bar(stat="identity",position="dodge") + xlab("Lexicality") + ylab("Microvolts") + labs(title = "Frequency effect for singular nouns and pseudoword controls") + scale_y_continuous("Microvolts",breaks = round(seq(0, -20, by = -0.5),1)) + guides(fill=guide_legend(title="Frequency"))+ scale_colour_manual(values = c("blue","red"))
剧情是这样的:
我现在想做的是证明伪词之间的频率差异并不显着,但单词之间却很显着。为此,最好有显着性统计数据(在我的例子中为 t 值)和置信区间。我知道如何计算这些,但我不知道如何将它们添加到条形图中。
我在 Internet 上进行了广泛的搜索,但找不到导致我想要看到的结果的示例。
非常感谢所有帮助。
我假设您需要均值和置信区间。
目前您正在绘制总和,因为您有一个堆叠条形图。我们可以看到在添加边框颜色的时候:
我们可以使用stat_summary()
计算均值,bootstrap置信区间:
ggplot(new.table, aes(Lexicality,ErpMinAv,fill=Frequency)) +
stat_summary(geom = 'bar', fun.y = mean, position = position_dodge(0.9)) +
stat_summary(
geom = 'errorbar',
fun.data = mean_cl_boot,
position = position_dodge(0.9),
width = 0.5
) +
scale_y_continuous("Microvolts",breaks = round(seq(0, -20, by = -0.5),1))
我是 R 的一个非常基础的用户,所以对于问题的简单性,或者如果缺乏表述,我预先表示歉意。
我有一个大数据集,其中有一个连续数值变量和两个因子,每个因子有 2 个水平。
这是(或多或少)基于 generated/artificial 数据重建我的数据:
wordhigh.mu <- -2
wordlow.mu <- -2.5
pswordhigh.mu <- -1.5
pswordlow.mu <- -1.5
sigma <- 0.3
wordshigh <- rnorm(50,mean = wordhigh.mu,sd=sigma)
wordslow <- rnorm(50,mean = wordlow.mu,sd=sigma)
pswordshigh <- rnorm(50,mean = pswordhigh.mu,sd=sigma)
pswordslow <- rnorm(50,mean = pswordlow.mu,sd=sigma)
value <- c(wordshigh,wordslow,pswordshigh,pswordslow)
LexicalitySample <- c(rep("Word",100),rep("Pseudoword",100))
FrequencySample <- c(rep("High",50),rep("Low",50),rep("High",50),rep("Low",50))
new.table <- data.frame(ErpMinAv=value,Lexicality=LexicalitySample,Frequency=FrequencySample)
我设法使用 ggplot 绘制了我的数据:
ExampleBarPlot <- ggplot(new.table,aes(Lexicality,ErpMinAv,fill=Frequency)) + geom_bar(stat="identity",position="dodge") + xlab("Lexicality") + ylab("Microvolts") + labs(title = "Frequency effect for singular nouns and pseudoword controls") + scale_y_continuous("Microvolts",breaks = round(seq(0, -20, by = -0.5),1)) + guides(fill=guide_legend(title="Frequency"))+ scale_colour_manual(values = c("blue","red"))
剧情是这样的:
我现在想做的是证明伪词之间的频率差异并不显着,但单词之间却很显着。为此,最好有显着性统计数据(在我的例子中为 t 值)和置信区间。我知道如何计算这些,但我不知道如何将它们添加到条形图中。
我在 Internet 上进行了广泛的搜索,但找不到导致我想要看到的结果的示例。
非常感谢所有帮助。
我假设您需要均值和置信区间。
目前您正在绘制总和,因为您有一个堆叠条形图。我们可以看到在添加边框颜色的时候:
我们可以使用stat_summary()
计算均值,bootstrap置信区间:
ggplot(new.table, aes(Lexicality,ErpMinAv,fill=Frequency)) +
stat_summary(geom = 'bar', fun.y = mean, position = position_dodge(0.9)) +
stat_summary(
geom = 'errorbar',
fun.data = mean_cl_boot,
position = position_dodge(0.9),
width = 0.5
) +
scale_y_continuous("Microvolts",breaks = round(seq(0, -20, by = -0.5),1))