【问题标题】:Using aesthetics with multiple layers in ggplot在 ggplot 中使用多层美学
【发布时间】:2016-08-23 22:26:13
【问题描述】:

我是 ggplot 的新手。我正在尝试了解如何使用 ggplot。我正在阅读 Wickham 的书,但仍在努力思考如何使用 aes() 函数。

aes()这两种实现有什么区别:

library(ggplot2)

ggplot(mpg, aes(displ, hwy, colour = class)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  theme(legend.position = "none")

和

ggplot(mpg, aes(displ, hwy)) +
  geom_point(aes(colour = class)) +
  geom_smooth(method = "lm", se = FALSE) +
  theme(legend.position = "none")

它们都打印出明显不同的图表。有什么帮助吗?我真的被困住了。

【问题讨论】:

  • 当您在ggplot 的aes 内映射美学时,它是全局。这意味着该映射被绘图中的所有其他绘图层使用,除非您使用 inhert.aes 参数。当您将它们放在像geom_point 这样的绘图层中时,它们只会影响该特定层。
  • 在询问 SO 之前,您应该首先阅读相关的帮助文本,即 ?aes: "提供给 ggplot() 的美学被用作每一层的默认值。您可以覆盖它们,或者为每一层提供不同的美学"

标签: r ggplot2


【解决方案1】:

在第一个中,您在全球范围内映射美学,ggplot 将尝试将这些美学映射到所有其他 geom_xyz() 层。

在后一种情况下,您将美学映射到特定的ggplot 层(在您的情况下为geom_point())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    相关资源
    最近更新 更多