为ggplot2行指定颜色

时间:2016-01-08 16:37:07

标签: r plot colors ggplot2 line-plot

我想用ggplot2做5行不同的线图。我使用了以下代码。

plot <- ggplot() + 
  geom_line(data=MS, aes(x=date, y=MSCI.World.PI, color='MS')) +
  geom_line(data=S, aes(x=date, y=SandP.TR, color='S')) +
  geom_line(data=BR, aes(x=date, y=MSCI.BRIC.PI, color='BR')) +
  geom_line(data=HF, aes(x=date, y=HFRX, color='HF')) +
  geom_line(data=LP, aes(x=date, y=LPX50.TR, color='LP')) +
  scale_color_manual(values = c("red", "blue", "green", "yellow", "violet" )) +
  labs(color="Indices") +
  xlab('Time') +
  ylab('Price')
plot

结果如下: RequireJs text plugin

“错误”部分是,颜色未按预期排序,这意味着第一行(“MS”)未分配给第一种颜色(“红色”)。似乎该行按字母顺序分配给颜色。

有没有什么方法可以改变分配方式,第一行分别是scale_color_manuel语句中的第一种颜色,第二种颜色分配给第二种颜色等等?

1 个答案:

答案 0 :(得分:5)

将颜色指定为命名向量可以解决问题,并使映射显式:

scale_color_manual(
      values = c(
           MS="red",
           S="blue",
          BR="green",
          HF="yellow",
          LP="violet" ))