我想制作一个简单的线条图,如下所示:
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,线为红色。
我知道我可以将数据系列分成两个部分,分别绘制它们,然后图像将它们合并在一起,但是我使用的真实数据来自一个大型的复杂数据框,因此我需要从数十个数据集中进行绘制,因此,只需编写一个简短的快速代码即可操作而不浪费实际数据,这将节省大量时间。
一行,两种颜色,就是这样!
谢谢!
也许我误会了您在这里需要的东西,但是在我看来,您可以轻松地做到这一点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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句