R语言 使用ggplot2绘制平均值和标准偏差图

R语言 使用ggplot2绘制平均值和标准偏差图

误差条 显示了一组测量值或计算值的置信度和精确度,基于数据集中出现的误差。它有助于直观地显示数据框中某一区域的误差,并显示实际的和准确的缺失部分。作为一种描述性的行为,误差条提供了关于数据中差异的细节,以及进行修改的建议,从而使数据对用户来说变得更有洞察力和影响力。

开始使用

geom_errorbar(): 这个函数用来产生误差条。

语法

geom_errorbar(mapping = NULL, data = NULL, stat = “ident”, position = “ident”, …)

例子 :在柱状图上显示平均值和标准差的图。

df<-data.frame(Mean=c(0.24,0.25,0.37,0.643,0.54),
               sd=c(0.00362,0.281,0.3068,0.2432,0.322),
               Quality=as.factor(c("good","bad","good",
                                   "very good","very good")), 
               Category=c("A","B","C","D","E"),
               Insert= c(0.0, 0.1, 0.3, 0.5, 1.0))
  
# Load ggplot2
library(ggplot2)
  
ggplot(df, aes(x=Category, y=Mean, fill=Quality)) +
  geom_bar(position=position_dodge(), stat="identity",
           colour='black') +
  geom_errorbar(aes(ymin=Mean-sd, ymax=Mean+sd), width=.2)

输出

在R中使用ggplot2绘制平均值和标准偏差图

现在让我们看看点图,如果我们想在同一个数据框中添加点,只需添加geom_point()即可。

语法

geom_point(mapping = NULL, data = NULL, stat = "identity", position = "identity",..., na.rm = FALSE,show.legend = NA, inherit.ais = TRUE)

例1: 带点图

# creating a data frame df
df<-data.frame(Mean=c(0.24,0.25,0.37,0.643,0.54),
               sd=c(0.00362,0.281,0.3068,0.2432,0.322),
               Quality=as.factor(c("good","bad","good",
                                   "very good","very good")), 
               Category=c("A","B","C","D","E"),
               Insert= c(0.0, 0.1, 0.3, 0.5, 1.0))
  
# plot the point plot
p<-ggplot(df, aes(x=Category, y=Mean, fill=Quality)) + 
  geom_point()+
  geom_errorbar(aes(ymin=Mean-sd, ymax=Mean+sd), width=.2,
                position=position_dodge(0.05))
  
p

输出

在R中使用ggplot2绘制平均值和标准偏差图

不同的小组使用不同的方法来说明他们的差异。另外,还可以使用点阵图或点阵图。为了告诉ggplot一列或点代表一个平均值,我们需要指出一个平均值统计。让我们使用一个不同的数据框架来详细探讨这个问题。要做到这一点,我们可以使用ggplot的 “统计 “函数。

让我们用均值的柱状图将结果可视化。为了代替*stat=count>',我们将告诉stat我们想要一个总结性的措施,即平均值。然后,将数据框架分成几组,记下每组的平均值和标准差并绘制出来。这可以用summaryize和group_by()来完成。

使用中的文件: Crop_recommendation

例子: 绘出每组的平均数和标准差。

# load crop_recomendation csv file and 
# store it in ds
ds <- read.csv("Crop_recommendation.csv", header = TRUE)
  
ggplot(ds, aes(x=label, y=temperature)) + geom_boxplot() 
  
# create a new dataframe crop_means
crop_means <- ds %>% 
  group_by(label) %>% 
  summarize(mean_temperature=mean(temperature)) 
crop_means
  
# Creating barplots of means
ggplot(crop_means, aes(x=label, y=mean_temperature)) +
geom_bar(stat="identity") 

输出

在R中使用ggplot2绘制平均值和标准偏差图

现在,如果你想指出点图,那么你也可以通过使用geom_point()函数来实现。

语法

geom_point(stat="summary", fun.y="mean")

例子: 点状图

# load crop_recomendation csv file and 
# store it in ds
ds <- read.csv("Crop_recommendation.csv", header = TRUE)
  
ggplot(ds, aes(x=label, y=temperature)) + geom_boxplot() 
  
# create a new dataframe crop_means
crop_means <- ds %>% 
  group_by(label) %>% 
  summarize(mean_temperature=mean(temperature)) 
crop_means
  
# creating point plots of means
ggplot(ds, aes(x=label, y=temperature)) + 
geom_point(stat="summary", fun.y="mean") 

输出

在R中使用ggplot2绘制平均值和标准偏差图

对于绘制 标准偏差(SD) ,你需要使用geom_errorbar()。首先,我们可以创建一个新的数据集,这是创建误差条的最费力的方法。这次我们还将计算标准误差(等于标准偏差除以N的平方根)。

语法

geom_errorbar()

参数

  • ymin或xmin:自定义点的下限值
  • ymax或xmax。自定义点的上限值
  • height: 误差条的高度
  • alpha:误差条的不透明度
  • color: 误差条的颜色
  • 组。通过组来区分点
  • 线型
  • 大小

示例: 绘制标准偏差图

# load a crop recommendation csv file dataset
ds <- read.csv("Crop_recommendation.csv", header = TRUE)
  
# create a new dataframe crop_means_Se
crop_means_se <- ds %>%  
  group_by(label) %>% 
  summarize(mean_N=mean(N), 
            sd_N=sd(N), 
            N_N=n(), 
            se=sd_N/sqrt(N_N), 
            upper_limit=mean_N+se, 
            lower_limit=mean_N-se 
  ) 
  
crop_means_se
  
ggplot(crop_means_se, aes(x=label, y=mean_N)) + 
geom_bar(stat="identity") + 
geom_errorbar(aes(ymin=lower_limit, ymax=upper_limit))

输出

在R中使用ggplot2绘制平均值和标准偏差图

你也可以通过使用geom_errorbar()创建你自己的 “se “函数。Xmin & Xmax和Ymin & Ymax可用于水平或垂直地绘制误差条。

语法

geom_errorbar(stat="summary",fun.ymin=function(x){mean(x-sd(x)/sqrt(length(x))}, fun.ymax=function(x){mean(x)+sd(x)/sqrt(length(x))})

在这里,我们计算ymin和ymax的值来垂直绘制误差条,这些值是由一个单独的函数创建的,其中计算y的最小值或ymin的( x-sd(x)/sqrt(length(x))的平均值,以及计算y的最大值或ymax的( x+sd(x)/sqrt(length(x))的平均值。

例子: 绘制标准偏差图

# load a crop recommendation csv file dataset
ds <- read.csv("Crop_recommendation.csv", header = TRUE)
  
ggplot(ds, aes(x=label, y=N)) + geom_bar(stat="summary", fun.y="mean") + 
  geom_errorbar(stat="summary", 
                fun.ymin=function(x) {mean(x)-sd(x)/sqrt(length(x))}, 
                fun.ymax=function(x) {mean(x)+sd(x)/sqrt(length(x))})

输出

在R中使用ggplot2绘制平均值和标准偏差图

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程