13

在 ggplot2 中摆弄点大小选项后,我注意到aes()geom_point(). 从Hadley 网站上的 `geom_point() 页面

p <- ggplot(mtcars, aes(wt, mpg))

# passed inside
p + geom_point(aes(size = qsec)) 
p + geom_point(aes(size = qsec)) + scale_area() 

# passed outside
p + geom_point(colour = "red", size = 3) 
p + geom_point(colour = "grey50", size = 4)

当涉及到传说时,我发现这些行为有所不同。通过内部时,aes()我可以看到一个图例,尽管我需要设置休息点,即使我只有两个不同大小的点;否则,即使只使用了 2 个,我也会得到 5 个点大小的范围。

此外,传递的尺寸也没有意义。我需要使用指定相对大小range=c(min,max)并将中断设置为只有两个大小,而不是默认的五个。

如果我通过 size 之外的aes()尺寸,尺寸似乎很荣幸,但我无法在我的情节上获得传奇;我试过了scale_sizescale_size_continuousscale_size_manual没有成功。

geom_point()页面有这个:

以下美学可以与 geom_point 一起使用。美学通过 aes 函数映射到数据中的变量:geom_point(aes(x = var))

...

比例控制变量如何映射到美学并在每个美学之后列出。

[此处列出所有美学选项(形状、颜色、尺寸等)]

从那时起,仍然不清楚内部和外部的选项(这个问题中的大小,但这对其他美学应该是有意义的)如何aes()影响结果。

4

1 回答 1

16

当在内部指定时aes,美学被映射到数据中变量的值。由于数据和视觉美学之间存在映射,因此有一个图例显示了这种映射。在aes通话之外,美学只是设置为特定值。在您展示的示例中,所有点的大小(和颜色)都设置为相同的值。在这种情况下,不需要图例,因为大小(或颜色)不传达任何意义(关于基础数据)。

您在图例中看到的问题是由于大小被映射到连续变量。碰巧这个变量在您的数据中只有两个值,但原则上,连续变量可以采用任何值。如果它真的只是一个二选一的变量,请将其作为一个因素(在原始数据或审美调用aes(size=factor(qsec))中)。

于 2012-07-16T20:43:03.023 回答