R语言 如何用一条连接平均值的线来制作Bowxplot
箱形图 是总结分布形状的一个好方法,显示其中位数、平均值、偏度、可能的离群值、分布等。这些图是数据探索的最佳方法。箱形图是五个数字的总结,其中包括最小值、第一四分位数、中位数、第三四分位数和最大值。
在这篇文章中,我们将讨论如何在R编程语言中用连接均值的线制作一个boxplot。
为了在R语言中创建一个带有均值连接线的boxplot,我们使用ggplot2的重叠方法。我们首先创建一个简单的ggplot2 boxplot。然后我们从数据框中获取数据值的平均值,并将其存储在向量平均值中。然后通过使用向量平均数和ggplot2的geom_line()函数,我们将直线图重叠到boxplot上,以复制直线连接平均值的效果。
语法
ggplot() + geom_boxplot() + geom_line()
例子: R程序创建一个用线连接平均值的boxplot
# import library tidyverse
library(tidyverse)
# set seed and create a dataframe
set.seed(1068)
df <- data.frame(grp = paste0("geeks",
rep(1:7, each = 56)),
values = c(rnorm(56, 7, 20),
rnorm(56, 14, 40),
rnorm(56, 28, 60),
rnorm(56, 56, 100),
rnorm(56, 63, 60),
rnorm(56, 63, 60),
rnorm(56, 63, 60)))
# Get mean of data values from data frame
mean <- df %>%
group_by(grp) %>%
summarize(average = mean(values)) %>%
ungroup()
# Create Boxplot with a line plot using mean values
df %>%
ggplot(mapping = aes(x = grp, y = values)) +
geom_boxplot() +
geom_line(data = mean,
mapping = aes(x = grp, y = average, group=1),color="green")
输出
例子: R程序创建一个带有连接平均值的线的boxplot。
# import library tidyverse
library(tidyverse)
# set seed and create a dataframe
set.seed(1068)
df <- data.frame(grp = paste0("Students",
rep(1:4, each = 40)),
values = c(rnorm(40, 100, 122),
rnorm(40, 14, 21),
rnorm(40, 28, 93),
rnorm(40, 52, 100)))
# Get mean of data values from data frame
mean <- df %>%
group_by(grp) %>%
summarize(average = mean(values)) %>%
ungroup()
# Create Boxplot with a line plot using mean values
df %>%
ggplot(mapping = aes(x = grp, y = values)) +
geom_boxplot() +
geom_line(data = mean,mapping = aes(x = grp, y = average, group=1),
color="red", size=1.4)+
coord_flip()
输出
极客教程