Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R aes()中的传递选项与ggplot2中的传递选项之间的差异_R_Plot_Ggplot2_Size - Fatal编程技术网

R aes()中的传递选项与ggplot2中的传递选项之间的差异

R aes()中的传递选项与ggplot2中的传递选项之间的差异,r,plot,ggplot2,size,R,Plot,Ggplot2,Size,在修改了ggplot2中的点大小选项后,我注意到一些示例,其中大小在geom_point()的aes()参数的内部和外部传递。从: p当在aes中指定时,美学映射到数据中变量的值。由于数据和可见美学之间存在映射,因此有一个图例显示了该映射。在aes调用之外,美学只是设置为一个特定的值。在显示的示例中,所有点的大小(和颜色)都设置为相同的值。在这种情况下,不需要图例,因为尺寸(或颜色)不传达任何含义(关于基础数据) 图例中出现的问题是由于映射到连续变量的大小。这个变量在数据中只有两个值,但原则上,

在修改了ggplot2中的点大小选项后,我注意到一些示例,其中大小在
geom_point()
aes()
参数的内部和外部传递。从:


p当在
aes
中指定时,美学映射到数据中变量的值。由于数据和可见美学之间存在映射,因此有一个图例显示了该映射。在aes调用之外,美学只是设置为一个特定的值。在显示的示例中,所有点的大小(和颜色)都设置为相同的值。在这种情况下,不需要图例,因为尺寸(或颜色)不传达任何含义(关于基础数据)


图例中出现的问题是由于映射到连续变量的大小。这个变量在数据中只有两个值,但原则上,一个连续变量可以有任何值。如果它真的只是两个变量的选择,那么将其作为一个因子(在原始数据中或在美学调用
aes(size=factor(qsec))

得到它。我的具体情况可能是因为使用了两个调用
geom_point()
对于具有相同总因子级别的两个不同数据集。我希望一个数据集的大小为n,另一个数据集的大小为m。可能因为每次调用
geom_point()
时,如果我在
aes()外部调用,它只会看到一个静态大小,因此不会添加图例?(我在调用
aes()外部时提到这一点)
有一个特定的值…但由于两个这样的调用使用不同的大小选项,因此大小是有意义的。实现这一目的的惯用方法是将两个数据集放入一个单独的data.frame中,并使用一个新的列来标识它来自哪个集。然后,可以将大小映射到该变量,并使用
scale\u size\u manual
可用于将大小设置为所需的大小。或者,您可以将大小指定给字符串常量(
aes(size=“set1”)
,其中一个为
aes(size=“set2”)
),然后使用
scale\u size\u manual
将这些分隔符映射到特定的标签和大小(
)。例如,请参阅,
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)