如何通过R制作带有预分类数据的箱线图?

时间:2017-10-19 12:20:52

标签: r ggplot2

我是R的初学者,目前正在研究R生成的图形。 通常,大多数数据示例都是ggplot2中的钻石:

carat cut color clarity depth table price x y z

0.2 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43

0.2 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31

0.2 Good E VS1 56.9 65.0 327 4.05 4.07 2.31

0.3 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63

0.3 Good J SI2 63.3 58.0 335 4.34 4.35 2.75

0.2 Very Good J VVS2 62.8 57.0 336 3.94 3.96 2.48

这意味着如果绘制箱线图,R将首先根据切割对数据进行排序。相反,如下数据集如何:

cut price1 price2 price3

Good  0.68 0.89 0.74

Medium 0.12 0.35 0.26

这是否意味着每个类别中的所有值都是预先排序的?我想知道用什么方法处理这种类型的数据来绘制boxplot。

1 个答案:

答案 0 :(得分:2)

你可能想要做的是"融化"您的数据(从"宽"转换为" long"格式)。例如:

# Melt your dataset
library(reshape2)
# Here we melt dataset by "cut" (ie, we group by this column)
dataset_melt <- melt(dataset, "cut")

# How melted dataset looks like
#      cut variable value
# 1:   Good   price1  0.68
# 2: Medium   price1  0.12
# 3:   Good   price2  0.89
# 4: Medium   price2  0.35
# 5:   Good   price3  0.74
# 6: Medium   price3  0.26

# Plot melted dataset
library(ggplot2)
ggplot(dataset_melt, aes(cut, value)) + 
    geom_boxplot()

enter image description here