R语言 如何使用ggplot2在boxplot中绘制平均值

R语言 如何使用ggplot2在boxplot中绘制平均值

在这篇文章中,我们将看到如何使用R编程语言中的ggplot在boxplot中绘制平均值。

R语言中的盒式图是用来总结连续变量的分布的。它也可以用来显示每组的平均值。平均数或中位数也可以通过标注点的方式用boxplot计算出来。

方法1:使用stat_summary方法

R中的ggplot方法是用来使用指定的数据框架做图形可视化的。它被用来实例化一个ggplot对象。可以为绘图对象创建美学映射,以分别确定x轴和y轴之间的关系。可以向创建的ggplot对象添加其他组件。

语法: ggplot(data = NULL, mapping = aes(), fill = )

参数 :

  • data – 用于绘图的默认数据集。
  • mapping – 用于绘图的审美贴图列表。

地形图可以用各种方法添加到绘图中。R中的geom_boxplot()方法可以用来在绘制的图中添加箱形图。它被作为一个组件添加到现有的绘图中。美学映射也可以包含颜色属性,根据不同的数据框架以不同的方式分配。

geom_boxplot(alpha = )

stat_summary()方法可用于在箱形图中添加平均点。它被用来向所做的图中添加成分。这个方法在绘制数据之前保存了对平均数的计算。

语法: tat_summary(fun=mean, geom=)

参数:

  • geom – 用来显示数据的几何对象
  • position – 该层上的重叠点要使用的位置调整

例子

# Library
library(ggplot2)
 
# defining the columns of the data frame
data_frame <- data.frame(col1=c(rep("A", 10) ,
                                rep("B", 12) ,
                                rep("C", 18)),
                         col2=c( sample(2:5, 10 ,
                                        replace=T) ,
                                sample(4:10, 12 ,
                                       replace=T),
                                sample(1:7, 18 ,
                                       replace=T))
                         )
 
# plotting the data frame
graph <- ggplot(data_frame,
                aes(x=col1, y=col2, fill=col1)) +
  geom_boxplot(alpha=0.7) +
  stat_summary(fun=mean, geom="point",
               shape=20, color="blue",
               fill="blue")
 
# constructing the graph
print(graph)

输出

如何使用R语言中的ggplot2在boxplot中绘制平均值?

方法2:使用 聚合方法

基础R中的aggregate()方法是用来将数据分成子集的。它还可以用来计算每个计算的子集的汇总统计,然后以分组的形式返回结果。

语法: aggregate(x, by, FUN)

参数 :

  • x – 一个列表或数据框
  • by – 要分组的数据框架的列的列表
  • FUN – 应用于x的函数

R中的boxplot方法被用来生成指定分组数值的盒须图。R语言中的boxplot方法有以下语法。

语法: boxplot( 公式)

参数 :

  • formula – 公式,如y ~ grp,其中y是一个数据值的数字向量。

可以进一步定制boxplot,以便在图上添加点和文本。

语法: points (x , y , col, pch)

参数 :

  • x ,y – 要标记的点的坐标
  • col – 绘制这些点的颜色
# defining the columns of the data frame
data_frame <- data.frame(col1=c(rep("A", 10) ,
                                rep("B", 12) ,
                                rep("C", 18)),
                         col2=c( sample(2:5, 10 ,
                                        replace=T) ,
                                sample(4:10, 12 ,
                                       replace=T),
                                sample(1:7, 18 ,
                                       replace=T))
                          
df_col1 <- list(data_framecol1)
                          
# computing the mean data frame
data_mod <- aggregate(data_framecol2,                     
                        df_col1,
                        mean)
# plotting the boxplot
boxplot(data_framecol2 ~ data_framecol1)
                          
# calculating rows of data_mod
row <- nrow(data_mod)
                          
# marking the points of the box plot
points(x = 1:row,                           
       y = data_modx,
       col = "red",
       pch = 14
       )
                          
# adding text to the plot
text(x = 1:row,  
     y = data_modx - 0.15,
     labels = paste("Mean - ", round(data_mod$x,2)),
     col = "dark green")

输出

如何使用R语言中的ggplot2在boxplot中绘制平均值?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程