📜  在 R 中使用 ggplot2 创建多列值的箱线图

📅  最后修改于: 2022-05-13 01:54:34.711000             🧑  作者: Mango

在 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)

输出: