我们说我有data.frame
:
df <- data.frame(x = rep(1, 20), y = runif(20, 10, 20))
我希望将df$y
与df$x
进行对比。
由于x值是常数,具有相同或接近y值的点将在简单的散点图中彼此重叠绘制,这种点在这样的y值处隐藏点的密度。对于这种情况的一种解决方案当然是使用小提琴情节。
我正在寻找另一种解决方案 - 绘制点群而不是单个点,因此看起来类似于气泡图。然而,在气泡图中,为了使气泡有意义,需要第三个维度,这在我的数据中没有。有没有人知道一个R函数/包作为输入点(可能是一个定义的半径)并将它们聚类并绘制它们?
答案 0 :(得分:4)
您可以jitter
x值:
plot(jitter(df$x),df$y)
答案 1 :(得分:3)
您可以使用hexplot
库或ggplot2中的stat_binhex
尝试使用hexplot。
答案 2 :(得分:3)
另一种标准方法(与抖动相比)是使用部分透明的颜色,因此重叠点将显得比“孤独”点更暗。
De gustibus等。
答案 3 :(得分:3)
使用透明度是另一种解决方案。 E.g:
ggplot(df, aes(x=x, y=y)) +
geom_point(alpha=0.2, size=3)
当只有一个x
值时,密度图:
ggplot(df, aes(x=y)) +
stat_density(geom="line")
或小提琴情节:
ggplot(df, aes(x=x, y=y)) +
geom_violin()
也可能是显示数据的选项。
答案 4 :(得分:2)
查看sunflowerplot
函数(以及用于计算重叠点的xyTable
函数)。
您还可以使用TeachingDemos包中的my.symbols
函数和xyTable
的结果来使用其他形状(多边形或示例)。