1

我想制作一个像这样的简单线图:

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()

(图片)

但是单线在某个数据点改变颜色,在这种情况下,比如周一至周三为蓝色,周三至周五为红色。即从数据点编号 1 到 3,线为蓝色,从 3 到 5,线为红色。

我知道我可以将数据系列一分为二,分别绘制它们,图像将加入它们,但我使用的真实数据来自一个大型复杂数据框,我需要从其中的几十个中绘制,因此,在不操纵实际数据的情况下使用一个快速的小代码来执行此操作将大大节省时间。

一条线,两种颜色,就是这样!

谢谢!

4

1 回答 1

0

也许我误解了您在这里需要什么,但在我看来,您可以在ggplot2.

截屏

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)
于 2013-09-25T15:25:50.757 回答