r - 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' 在上面的示例中不起作用。
解决方案
该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"))
推荐阅读
- python - 单击功能未按预期工作。我该如何解决?
- javascript - javascript & api 调用:如何获取从 api 调用返回的值?
- typescript - 两个具有静态返回类型的 TypeScript 函数。语法不同,但它们似乎做同样的事情?
- python - 如何使用另一个列表中的元素初始化新列表
- javascript - 如何在 then() 方法中发送响应,然后是另一个 then() 方法?
- python - 为什么 collections.Counter 或 .count() 在这里没有给出正确答案?
- java - 如何使用 java 运行 UFT 脚本
- ios - 如何检索评论/帖子的键
- r - 使用 ifelse 函数重命名百分比值
- html - 在不更改渲染输出的情况下,哪些 HTML 空白可以安全地丢弃或添加?