绘制 GGplot 多个箱线图组

彼得·皮舍

我有问题要在情节中调整 ggplot。这些框在 ggplot boxplot 中正确分组,但在 plotly 图中重叠。

data(iris)
melted <- melt(iris,id.vars="Species")
melted <- subset(melted,variable %in% c("Sepal.Length","Sepal.Width"))


p <- ggplot(melted,aes(x=variable,y=value,fill=Species)) +
      geom_boxplot(aes(fill=Species,color=Species))
p
ggplotly(p) 
基科拉斯顿

我不确定您所说的“单独的盒子不相同”是什么意思。当我复制你的例子时,我注意到两个问题:

  1. 在我的电脑中,绘图中的框相互重叠
  2. 两幅图中的须线和离群点并不完全相同。在某些情况下,ggplot 的胡须较短并显示异常点。在情节上,相应的胡须更长,箱线图没有离群点。

首要问题:

似乎(从下面的链接)您可以通过将最后一行更改为:

ggplotly(p) %>% layout(boxmode='group')

在我的计算机(R 版本 3.5.3,ggplot2 3.1.0,plotly 4.8.0)中,这会抛出一个警告,指出"'layout' 对象没有这些属性:'boxmode'"但是列表中的第三个链接说你可以忽略它

  1. https://plot.ly/r/box-plots/
  2. https://github.com/ropensci/plotly/issues/679
  3. https://github.com/ropensci/plotly/issues/994

第二个问题:

这是我在发布第一个答案后才注意到的。显然geom_boxggplot函数对盒子和胡须的限制使用了不同的定义。看看? geom_boxplot它说

下铰链和上铰链对应于第一个和第三个四分位数(第 25 个和第 75 个百分位数)。这与 boxplot() 函数使用的方法略有不同,对于小样本可能很明显。有关如何为 boxplot() 计算铰链位置的更多信息,请参见 boxplot.stats()。

上须从铰链延伸到最大值,距离铰链不超过 1.5 * IQR(其中 IQR 是四分位距,或第一和第三四分位数之间的距离)。下部晶须从铰链延伸到最小值,最多为铰链的 1.5 * IQR。胡须末端以外的数据称为“外围”点,并单独绘制。

当我过去boxplot()创建图表时,我得到了类似于 plotly 中的箱线图的东西。因此,plotly 似乎使用与boxplot()创建图形相同的方法,这似乎与geom_boxplot(). 我不确定,但我认为这可能是其中一个使用<和另一个<=解释“最大值不超过 1.5 * IQR”的问题

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章