首页 > 解决方案 > 将 aes(x=...) 放入 ggplot() 或 geom() 之间的区别

问题描述

将 aes(x=…) 放入 ggplot() 或 geom() 有什么区别(例如下面的 geom_histogram() ):

1. 在 ggplot() 中:

ggplot(diamonds) + 
  geom_histogram(binwidth=500, aes(x=diamonds$price))+ 
  xlab("Diamond Price U$") + ylab("Frequency")+ 
  ggtitle("Diamond Price Distribution")

方法A的直方图放在这里

2. 在 geom() 中:

ggplot(diamonds, aes(x=diamonds$price)) + 
  geom_histogram(bidwidth= 500) + 
  xlab("Price") + ylab("Frequncy") + 
  ggtitle("Diamonds Price distribution")

方法B的直方图放在这里

标签: rggplot2histogram

解决方案


如果您有多个具有不同映射的几何图形,则无论您x = price是进行原始ggplot()调用还是特定调用,都非常重要。geom您在调用中指定的映射ggplot()将应用于所有几何图形,因此通常最好将映射像这样放在顶层,如果只是为了节省您必须为每个单独的几何图形再次输入它。geom如果它们仅适用于特定的 s ,请在各个 s 中指定映射geom

另请注意,它应该只是aes(x = price),而不是aes(x = diamonds$price)ggplot知道查看您用作data参数的数据框。如果你手动传递一个向量,diamonds$price你可能会在更复杂的图中弄乱分面或分组。


推荐阅读