如何使用连接 R 中的平均值的线制作箱线图?
箱线图是总结分布形状的好方法,可以显示其中位数、均值、偏度、可能的异常值、分布等。这些图是数据探索的最佳方法。箱线图是五数汇总,其中包括最小值、第一四分位数、中位数、第三四分位数和最大值。
在本文中,我们将讨论如何在 R 编程语言中使用连接平均值的线制作箱线图。
要使用 R 中连接平均值的线创建箱线图,我们使用 ggplot2 的重叠方法。我们首先创建简单的 ggplot2 boxplot。然后我们从数据框中获取数据值的平均值并将它们存储在向量均值中。然后通过使用 ggplot2 的向量均值和 geom_line()函数,我们将线图与箱线图重叠,该箱线图复制了线连接平均值的效果。
句法:
ggplot() + geom_boxplot() + geom_line()
示例:使用连接平均值的线创建箱线图的 R 程序
R
# 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
# 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()
输出:
示例:使用连接平均值的线创建箱线图的 R 程序
电阻
# 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()
输出: