【发布时间】:2018-03-19 22:29:54
【问题描述】:
我试图绘制一些预测数据与实际数据,类似于以下内容:
# Some random data
x <- seq(1: 10)
y_pred <- runif(10, min = -10, max = 10)
y_obs <- y_pred + rnorm(10)
# Faking a CI
Lo.95 <- y_pred - 1.96
Hi.95 <- y_pred + 1.96
my_df <- data.frame(x, y_pred, y_obs, Lo.95, Hi.95)
ggplot(my_df, aes(x = x, y = y_pred)) +
geom_line(aes(colour = "Forecasted Data"), size = 1.2) +
geom_point(aes(x = x, y = y_obs, colour = "Actual Data"), size = 3) +
geom_ribbon(aes(ymin=Lo.95, ymax=Hi.95, x=x, linetype = NA, colour = "Confidence Interval"), alpha=0.2) +
theme_grey() +
scale_colour_manual(
values = c("gray30", "blue", "red"),
guide = guide_legend(override.aes = list(
border=c(NA, NA, NA),
fill=c("gray30", "white", "white"),
linetype = c("blank", "blank", "solid"),
shape = c(NA, 19, NA))))
剧情如下:
我对这个图的唯一问题是线的图例项符号周围的红色边框(即预测数据)。有什么办法可以在不破坏其余情节的情况下删除它?
【问题讨论】:
-
我建议这里的根本问题是您将数据映射到颜色的方式。例如,
aes(color = "Actual Data")并不是真正正确的用法。通常我们使用aes()来映射变量(列名,不加引号)。我会收集数据以创建一个列来指示 y 是否被观察或预测,然后使用geom_point()和aes()来为该列着色。