R中的折线图用单个数据系列改变颜色的线,即1行,2种颜色

时间:2013-09-25 14:28:42

标签: r colors plot line

我想制作一个简单的线条图:

things <- c(1, 3, 6, 4, 9)
plot(things, type="o", col="blue", axes=FALSE, ann=FALSE)
axis(1, at=1:5, lab=c("Mon","Tue","Wed","Thu","Fri"))
axis(2, las=1)
box()

(Image)

但是在某个数据点处单线改变颜色,在这种情况下,例如,蓝色星期一 - 星期三,红色星期三到星期五。即从数据点1到3,线是蓝色,从3到5,它将是红色。

我知道我可以将数据系列分成两部分,并将它们分开绘制,图像将加入它们,但我使用的真实数据来自一个大型的复杂数据框,我需要制作数十个图表。其中有一个快速的小代码可以在不操纵实际数据的情况下完成,这将节省大量时间。

一行,两种颜色,就是这样!

谢谢!

1 个答案:

答案 0 :(得分:0)

也许我误解了你需要的东西,但在我看来,你可以在ggplot2中轻松地做到这一点。

screenshot

library(ggplot2)

dd <- data.frame(days = c("Mon","Tue","Wed","Thu","Fri"),
                 things = c(1, 3, 6, 4, 9))

# set the levels of the factor so that 'days' sorts properly
dd$days <- factor(dd$days, levels = c('Mon','Tue','Wed','Thu','Fri'))
# which days do we want to highlight?
days.highlight <- dd$days[4:5]

dd$highlight <- ifelse(dd$days %in% days.highlight, "red", "black")

ggplot(dd, aes(x = days, y = things, colour = highlight, group = 1)) +
    geom_line() +
    geom_point() +
    scale_colour_identity(dd$highlight)