如何在箱线图上打印频率 - ggplot - R

How to print frequency on boxplot - ggplot - R

这是我的数据框

X color   cut      carrat
1   E    Ideal     0.23
2   J    Premiun   0.34
3   E    Ideal     0.23
...

我想为我的列 var "cut" 创建一个箱线图。

这是我想做的代码...

ggplot(diamonds, aes(cut)) + geom_boxplot()

但是,它无法正常工作,因为它要求缺少美学变量 "y"。

因为我没有给aes提供第二个变量,我要提供的第二个变量是什么?因为我只需要在 x 的边缘我的 var "cut" 可以采用不同的值,而在 Y 的边缘需要它的频率。

谢谢。

下面的代码将完成这项工作:

library(ggplot2)
p <- ggplot(diamonds, aes(x = cut, y=carat))
p <- p + geom_boxplot(outlier.colour = "blue", fill="grey85")
p <- p + labs(title = "Diamonds carats")
show(p)

箱线图是一些数据分布的分组,因此您必须提供要对其分布进行箱线图的数据。 x 美学必须代表类型,y 必须代表数据集。

箱线图需要一个 y 变量,因为它要说明分布。切割的行数不是分布,而是每次切割的一个数字。以下是每次切割的计数:

> table(diamonds$cut)

     Fair      Good Very Good   Premium     Ideal 
     1610      4906     12082     13791     21551

该信息无法在箱形图中显示。相反,您可以使用像这样的条形图:

ggplot(diamonds, aes(x = cut)) +
  geom_bar()

生成此图表的对象:

或者这里是cut和carat的箱线图的代码,例如:

ggplot(diamonds, aes(x = cut, y = carat)) +
  geom_boxplot()

图表:

所以箱线图显示了每个切割级别的克拉列的平均值、范围和四分位数。