在ggplot2

时间:2016-01-07 01:37:28

标签: r ggplot2

我正在尝试在最新版本的ggplot2中将alpha应用于平滑线。我有一个在12月更新中被打破的情节。该剧情的玩具示例:

dat <- mtcars
library(dplyr)
library(ggplot2)
plotdat <- dat %>% group_by(hp) %>% summarise(ave = mean(wt))
ggplot(plotdat, aes(hp,ave)) +
  geom_line(size = 2, alpha = .2) +
  geom_line(size = 2, alpha = .2, stat = "smooth")
#Warning message:
#Computation failed in `stat_smooth()`:
#object 'auto' of mode 'function' was not found 

以上代码适用于以前的版本,但现在会发出警告。当然,使用geom_smooth方法不允许您访问平滑线的alpha,因为alpha命令控制功能区。

ggplot(plotdat, aes(hp,ave)) +
  geom_line(size = 2, alpha = .1) +
  geom_smooth(size = 2, se = FALSE, alpha = .1)

制作接近我想要的情节。如何生成具有alpha / transparency的深蓝色平滑线?

(请注意,第二个alpha没有生效。)

enter image description here

1 个答案:

答案 0 :(得分:1)

感谢@aosmith提出的建议。通过直接在geom_line中将方法指定为“黄土”,我得到了一个有效的答案。

dat <- mtcars
library(dplyr)
library(ggplot2)
plotdat <- dat %>% group_by(hp) %>% summarise(ave = mean(wt))
ggplot(plotdat, aes(hp,ave)) +
  geom_line(size = 2, alpha = .2) +
  geom_line(size = 2, alpha = .2, stat = "smooth", method = "loess")