我不明白以下内容:为什么
data_ts <- data.frame(
day = as.Date("2017-06-14") - 0:364,
value = runif(365) + seq(-140, 224)^2 / 10000)
ggplot(data_ts, aes(x=day, y=value)) +
geom_line() +
scale_colour_manual(values = "#ffcc33")
产生黑线?我知道,我可以用
ggplot(data_ts, aes(x=day, y=value)) +
geom_line(colour = "#ffcc33")
相反,但我想理解为什么"scale_color_manual"在上面的示例中不起作用。
scale_colour_manual
函数仅影响通过美学aes()
映射的值。所有scale_*
函数也是如此。如果未在aes()
内部设置值,则scale
不会触及它们。如果要使用scale_colour_manual
,则需要映射。类似的东西
ggplot(data_ts, aes(x=day, y=value)) +
geom_line(aes(color="mycolor")) +
scale_colour_manual(values = "#ffcc33")
或者为了确保映射的文字值和颜色之间的正确匹配,您可以执行类似的操作
ggplot(data_ts, aes(x=day, y=value)) +
geom_line(aes(color="mycolor1")) +
geom_line(aes(y=value+1, color="mycolor2")) +
scale_colour_manual(values = c(mycolor1="#ffcc33", mycolor2="#33ccff"))