为什么此图表不显示重叠 p>
此数据集中的某些汽车共享x和y(displ和hwy)的相同组合。
然而,在这个地方只有一个绿点只显示1中型。我对这张图有什么误解?
非常感谢你!
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class))
答案 0 :(得分:2)
的Carsten,
对goem_point()的调用会将坐标映射到彼此,因此您只会看到一个点,对于小型数据集尤其如此。您可以使用geom_jitter()来解决此问题,它允许您在绘图中插入噪声,以便您查看所有点。
这里我们使用geom_jitter()将噪声插入到绘图数据中,以便我们查看所有重叠点。
if (require(ggplot2) ) install.packages("ggplot2")
data(mtcars)
ggplot(data = mpg) +
geom_jitter(mapping = aes(x = displ, y = hwy, color = class))
注意插入"噪音"允许您区分绘图点。
NB。抖动geom是geom_point的便捷快捷方式(position =" jitter")。它为每个点的位置添加了少量的随机变化,是处理由较小数据集中的离散性引起的过度绘制的有用方法。
答案 1 :(得分:1)
除了抖动之外,您还可以将geom_point()中的alpha参数更改为0.3或0.4,默认情况下为1,这意味着100%不透明。
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class, alpha = 0.3))
这将突出显示过度绘图的区域
答案 2 :(得分:0)
geom_jitter解决方案和alpha更改解决方案都非常出色。第三种可能性是使用geom_count()将标记的大小映射到这些坐标处的观测数量(以及alpha调整):
library(ggplot2)
data(mtcars)
ggplot(data = mpg) +
geom_count(mapping = aes(x = displ, y = hwy, color = class), alpha = .5)