r - scale_colour_manual 中的手动颜色未正确渲染
问题描述
无法弄清楚为什么手动颜色无法正确渲染。任何提示!!
library(tidyverse)
tb1 <-
tibble(
X = seq(1:50)
, A = rnorm(n = 50, mean = 100, sd = 8)
, B = rnorm(n = 50, mean = 150, sd = 6)
, C = rnorm(n = 50, mean = 175, sd = 5)
, D = rnorm(n = 50, mean = 200, sd = 5)
)
tb1
Plot1 <-
ggplot(tb1, aes(x = X)) +
geom_point(aes(y = A, colour = "orange")) +
geom_line(aes(y = B, colour = "black")) +
geom_line(aes(y = C, colour = "green")) +
geom_line(aes(y = D, colour = "red")) +
scale_colour_manual(
name = ''
, values = c("orange" = "orange", "black" = "black", "green" = "green", "red" = "red")
, labels = c("Obs", "Fit1", "Fit2", "Fit3")
)
Plot1
解决方案
如果您不添加标签,您会看到它们按字母顺序排列:
ggplot(tb1, aes(x = X)) +
geom_point(aes(y = A, colour = "orange")) +
geom_line(aes(y = B, colour = "black")) +
geom_line(aes(y = C, colour = "green")) +
geom_line(aes(y = D, colour = "red")) +
scale_colour_manual(
name = ''
, values = c("orange" = "orange", "black" = "black", "green" = "green", "red" = "red")
所以你需要使用休息来安排订单:
ggplot(tb1, aes(x = X)) +
geom_point(aes(y = A, colour = "orange")) +
geom_line(aes(y = B, colour = "black")) +
geom_line(aes(y = C, colour = "green")) +
geom_line(aes(y = D, colour = "red")) +
scale_colour_manual(
name = ''
, values = c("orange" = "orange", "black" = "black", "green" = "green", "red" = "red"),
breaks = c("orange","black","green","red"),
, labels = c("Obs", "Fit1", "Fit2", "Fit3")
)
推荐阅读
- solr - 如何防止 Solr 在重新启动时执行删除索引的提交
- perl - 使用在 stash 上设置的 Catalyst 值重置按钮上的文本
- python - 如何将此时间序列转换为 UTC?
- scala - lambda function does not capture the surrounding variable
- r - 建模收益递减的最佳函数
- vue.js - 无法使用 prop 值进行组件数据初始化工作
- postgresql - How to create text search configuration if not exists on PostgreSQL?
- sonarqube - Sonarqube 忽略测试文件
- xamarin - How to bind a nested Layout with external ContentView in Xamarin.Forms?
- python - 换行符/代码 \r\n \r\n 在文本之前显示