在 R 中使用 ggplot2 创建多列值的箱线图
在本文中,我们将讨论如何使用 R 编程语言中的 ggplot2 创建多列值的箱线图。
可以通过包含以行和列的形式组织的值来创建数据框。这些值可能属于不同的数据类型。 reshape2 包用于通过使用函数 melt 和 cast 聚合数据。可以使用以下命令将库安装并加载到工作空间中:
install.packages("reshape2")
R 中的 melt 方法用于将 R 对象(例如数据框)熔化为适合轻松铸造的形式。
语法:
melt(data, id.vars, measure.vars)
参数:
- data - 要融化的数据集
- id.vars – Id 变量。
- measure.vars – 测量变量。
这个包中的 ggplot 方法用于声明和定义一个 ggplot 对象。它将数据框作为输入,并定义一组用于绘图的美学映射。
ggplot(data = NULL, mapping = aes())
参数:
- data – 在 ggplot 方法中用作输入的数据框
- mapping - 用于绘图的美学映射的默认列表。
- 可以将其他组件添加到 ggplot 对象。 geom_boxplot() 方法用于在 R 中绘制 boxplot()。
语法:
geom_boxplot( mapping = aes(x , y , color ))
示例:
R
# importing required libraries
library(reshape2)
library(ggplot2)
# creating a dataframe
data_frame < - data.frame(col1=rep(1: 5, each=2),
col2=1: 10,
col3=11: 20,
col4=21: 30)
# creating the modified dataframe
data_mod < - melt(data_frame, id.vars='col1',
measure.vars=c('col2', 'col3', 'col4'))
# creating a plot
p < - ggplot(data_mod) +
geom_boxplot(aes(x=col1, y=value, color=variable))
# printing the plot
print(p)
R
library(reshape2)
library(ggplot2)
# creating a dataframe
data_frame < - data.frame(col1=rep(1: 5, each=2),
col2=1: 10,
col3=11: 20,
col4=21: 30)
# creating the modified dataframe
data_mod < - melt(data_frame, id.vars='col1',
measure.vars=c('col2', 'col3'))
# creating a plot
p < - ggplot(data_mod) +
geom_boxplot(aes(x=col1, y=value, color=variable))
# printing the plot
print(p)
输出
示例 2:
以下代码片段说明了在 x 轴上绘制属于 col2 和 col3 的值,在 y 轴上绘制其对应的数据项:
R
library(reshape2)
library(ggplot2)
# creating a dataframe
data_frame < - data.frame(col1=rep(1: 5, each=2),
col2=1: 10,
col3=11: 20,
col4=21: 30)
# creating the modified dataframe
data_mod < - melt(data_frame, id.vars='col1',
measure.vars=c('col2', 'col3'))
# creating a plot
p < - ggplot(data_mod) +
geom_boxplot(aes(x=col1, y=value, color=variable))
# printing the plot
print(p)
输出: