在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)
Run Code Online (Sandbox Code Playgroud)
我发现这些传说的表现方式不同.当aes()我进入内部时,我可以看到一个传奇,尽管我需要设置休息,即使我只有两个不同大小的点; 否则,我会得到一个五个点的范围,即使只使用了2个.
而且,通过的尺寸不可理解; 我需要指定使用的相对大小range=c(min,max),并将中断设置为仅两个大小而不是默认的五个.
如果我超越尺寸aes(),尺寸似乎很荣幸,但我无法在我的情节中获得传奇; 我想scale_size,scale_size_continuous和scale_size_manual没有成功.
从geom_point()页面上可以看到:
以下美学可与geom_point一起使用.使用aes函数将美学映射到数据中的变量:
geom_point(aes(x = var))...
Scales控制变量如何映射到美学,并在每个美学之后列出.
[此处列出所有美学选项(形状,颜色,大小等)]
从那以后,仍然不完全清楚如何选择(这个问题的大小,但这应该对其他美学有意义)内外aes()影响结果.
我有一个形状文件,my_sf. 如果我写:
ggplot() +
geom_sf(
data = my_sf,
size = 0.5 # this is the default value actually
)
Run Code Online (Sandbox Code Playgroud)
然后就可以正常工作了。但是,如果我my_line_width向 中添加一个属性my_sf,并将该列中的每个值设置为 0.5,然后写入:
ggplot() +
geom_sf(
data = my_sf,
aes(size = my_line_width)
)
Run Code Online (Sandbox Code Playgroud)
然后我得到一堆巨大的线条,它们可怕地重叠。如果正常线条的宽度为 0.5,那么这些线条的宽度可能为 4。我不明白为什么它们不会产生相同的结果(除了图例,我知道只有在您使用美学时才会弹出图例)。有谁知道发生了什么事吗?
我也尝试过使用lwd而不是size. 完全相同的事情发生了:当我只是设置一个静态值时没问题,但是当我尝试通过美学提供值时,就会出错。