如何用变量给定的半径绘制散点图?

时间:2019-01-27 18:48:33

标签: r ggplot2

我是ggplot的新手,我需要制作一个散点图,其大小与df的变量成比例,因此某些点会获得“零半径”,因为变量中的值为0,但是当我使用aes大小,将值为0的点映射到非零半径点。

我如何获得理想的效果?

1 个答案:

答案 0 :(得分:0)

根据帮助,“ scale_size_area确保将值0映射为大小0”。 [同样值得注意的是,如果使用scale_radiusscale_size,并且将range参数的下限设置为零,则可以获得类似的效果]。因此,我们可以这样做:

df <- data.frame(x=0:5, y=0:5, s=0:5)

ggplot(df, aes(x=x, y=y)) + 
  geom_point(aes(size=s)) +
  scale_size_area()    # NB scale_size(range = c(0, 6)) also works 

enter image description here

请注意,这仍然使用单个像素显示“零尺寸”点的位置。如果您希望它们实际上是不可见的,则可以过滤出大小为零的行,如下所示:

ggplot(df, aes(x=x, y=y, size=s)) + 
  geom_point(data = df[df$s != 0,]) +
  scale_size_area()