我有问题要在情节中调整 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)
我不确定您所说的“单独的盒子不相同”是什么意思。当我复制你的例子时,我注意到两个问题:
首要问题:
似乎(从下面的链接)您可以通过将最后一行更改为:
ggplotly(p) %>% layout(boxmode='group')
在我的计算机(R 版本 3.5.3,ggplot2 3.1.0,plotly 4.8.0)中,这会抛出一个警告,指出"'layout' 对象没有这些属性:'boxmode'"。但是列表中的第三个链接说你可以忽略它
第二个问题:
这是我在发布第一个答案后才注意到的。显然geom_box
ggplot的函数对盒子和胡须的限制使用了不同的定义。看看? 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] 删除。
我来说两句