geom_dotplot舍入点填充的小数位

时间:2018-11-21 17:04:06

标签: r ggplot2

我使用ggplot2创建了一些数据的箱线图,其中,数据点沿图的垂直轴显示为点。

bp2 <- ggplot(DBS, aes(DBS_Electrode,Proximal_Lead_Bowing, color=DBS_Electrode)) + 
    geom_boxplot() + geom_dotplot(binaxis="y", stackdir="center", fill="white", 
    dotsize=0.5) + theme_classic()

bp2 + scale_color_manual(values=c("goldenrod3","gray62","dodgerblue1")) + 
    theme(legend.position = "none") + xlab("") + ylab("Proximal Lead Bowing (mm)")

似乎我的输出将数据点舍入到最接近的十分之一,以使沿每个箱线图的轴的数据点具有多个实例,其中沿Y轴在同一级别上显示了多个点(请参见图) http://rpubs.com/Gopher16/441664)。这是数据的错误表示,因为没有数据点具有与近端引线弯曲完全相同的度量。 (数据测量到最接近的千分之一)。如何更改此输出,以使所有数据点均沿每个箱线图沿垂直轴显示(即,读取数据点至最接近的千分之一,而不是四舍五入至最接近的十分之一,以便沿Y轴在同一级别上不显示任何点-轴)?

1 个答案:

答案 0 :(得分:0)

首先,通过使用内置数据集,使此代码可再现,从而为以后的读者提供更有用的示例:

yarn list jest

horizontally adjacent points

这表现出您不希望看到的行为:ggplot(iris, aes(Species, Sepal.Length)) + geom_boxplot() + geom_dotplot(binaxis = "y", stackdir = "center", fill = "white", dotsize = 0.5) + theme_classic() 将这些点装仓,即使它们的geom_dotplot()值不同,也使多个点在水平方向上彼此相邻。

您可以为Sepal.Length指定binwidth = 0.01或其他较小的值,但这只是在减少问题,并引入其他问题。

您可能希望使用geom_dotplot

geom_jitter

jittered points

这保留了唯一y值的细微差异,这似乎是您的主要担心。