为线条分配颜色ggplot2

Assign color to lines ggplot2

我想用 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

结果如下图:

"wrong" 部分是,颜色未按预期排序,这意味着第一行 ("MS") 未分配给第一种颜色 ("red") .看起来这条线是按字母顺序分配给颜色的。

有什么方法可以更改分配,使第一行分配给 scale_color_manuel 语句中的第一种颜色,第二行分配给第二种颜色等等?

将颜色指定为命名向量就可以了,并使映射显式:

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