【发布时间】:2016-04-13 10:03:53
【问题描述】:
我想使用 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
“错误”部分是颜色未按预期排序,这意味着第一行(“MS”)未分配给第一种颜色(“红色”)。似乎该行按字母顺序分配给颜色。
有什么方法可以改变分配,使第一行在 scale_color_manuel 语句中分配给第一种颜色,第二行分配给第二种颜色等等?
【问题讨论】:
-
您是否尝试在 scale_color_manual() 表达式中重新排序颜色?
-
另外,我不得不提一下,这可能不是使用 ggplot2 的最佳方式。相反,最好利用 ggplot2 中的美学 - 特别是颜色 - 来绘制多条线。在这里很难弄清楚,但我怀疑使用 rbind() 组合所有数据帧然后使用颜色美学会有所帮助。
-
@boshek 您必须将它们变成“整洁的数据”,以便每列都有一个值和一个因子,该因子是索引名称。如果你想要的话,你仍然必须控制因子水平来精确地着色。
-
当然。正是这种笨重的操作导致我首先使用 ggplot2、tidyr、dplyr 等。然后以这种方式返回并使用 ggplot 似乎违反直觉。
标签: r plot colors ggplot2 line-plot