我想绘制计数的垂直箱线图,并将计数显示为点,覆盖在箱线图上。因为它们是离散值,所以会有多个点具有相同的值。为了在 ggplot2 中显示数据,我可以使用 geom_jitter() 来传播数据并获得稍微好一点的印象,但是抖动会破坏值(垂直分量),并且水平传播的随机性意味着如果抖动高度为设置为0,仍然有很高的机会重叠点。
有没有办法将所有具有相同值的点均匀且水平地分布?类似这样的事情:
以下是一些示例数据:
wine_votes <- melt(list(a=c(7,7,7,8,8,7,7,8,4,7,7,6,8,6),
b=c(5,8,6,4,3,4,4,9,5,8,4,5,4),
c=c(7.5,8,5,8,6,8,5,6,6.5,7,5,5,6),
d=c(4,4,5,5,6,8,5,8,5,6,3,6,5),
e=c(7,4,6,7,4,6,7,5,6.5,8.5,8,5)
))
names(wine_votes) <- c('vote', 'option')
# Example plot with jitter:
ggplot(wine_votes, aes(x=blend, y=vote)) +
geom_boxplot() + geom_jitter(position=position_jitter(height=0, width=0.2)) +
scale_y_continuous(breaks=seq(0,10,2))