首页 > 解决方案 > R:ggplot2:参考透明度问题

问题描述

下面的函数是出现在 Hadley Wickham 的 ggplot2 书第二版第 26 页上的函数的逐字符精确副本,但有两个例外:

  1. 输出分配给 p,然后绘制。
  2. 原文中“color =”之后的表达式是“year(date)”。

如果你取 year(economics$date),你会得到一个从 1967 年到 2015 年的数字向量,包括 1967 到 2015 年。我用 1967:2015 替换了那个表达式。结果是一个错误:

Error: Aesthetics must be either length 1 or the same as the data (574): colour

我有两个问题。

year <- function(x) as.POSIXlt(x)$year + 1900

p <- ggplot(economics, aes(unemploy / pop, uempmed)) + 
  geom_path(colour = "grey50") + 
  geom_point(aes(colour = 1967:2015))

plot(p)
  1. 为什么这个微不足道的改变会破坏功能?
  2. 为什么该功能首先起作用?(确实如此)。因为如果您查看颜色美学的文档,这里: https ://ggplot2.tidyverse.org/articles/ggplot2-specs.html它并没有说颜色美学采用数值向量或函数。

标签: rggplot2graphicscolorsreferential-transparency

解决方案


推荐阅读