首页 > 解决方案 > ggplot2中的线条颜色

问题描述

我不明白以下内容:为什么

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_colour_manual' 在上面的示例中不起作用。

标签: rggplot2

解决方案


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"))

推荐阅读