require(reshape2);require(ggplot2)
df <- data.frame(time = 1:10,
x1 = rnorm(10),
x2 = rnorm(10),
x3 = rnorm(10),
y1 = rnorm(10),
y2 = rnorm(10))
df <- melt(df, id = "time")
ggplot(df, aes(x = time, y = value, color = variable, group = variable,
size = variable, linetype = variable)) +
geom_line() +
scale_linetype_manual(values = c(rep(1, 3), 2, 2)) +
scale_size_manual(values = c(rep(.3, 3), 2, 2)) +
scale_color_manual(values = c(rep("grey", 3), "red", "green")) +
theme_minimal()
这个例子可能不是很有代表性,但是,例如,想象一下运行一堆回归模型,这些回归模型各自不重要但只是对图片做出贡献。虽然我只想强调实际和平均的拟合系列。所以基本上变量x并不重要,不应出现在图例中。
我尝试按其他帖子中的建议设置scale_color_discrete(breaks = c("y1", "y2"))
。但问题是所有的美学都已经通过手动使用,并且尝试设置另一个离散版本将覆盖已经为图形设置的属性(并搞乱整个事物)。理想情况下 - 我想看到完全相同的图形,但只有y1和y2显示在图例中。