【问题标题】:Line graph plot in R with a line for a single data series changing color, i.e. 1 line, 2 colorsR 中的折线图,其中一条线用于改变颜色的单个数据系列,即 1 条线,2 种颜色
【发布时间】:2013-09-25 14:28:42
【问题描述】:

我想做一个这样的简单线图:

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)

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

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

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

谢谢!

【问题讨论】:

  • 你有点和线,你想要最后两个点是不同的颜色和最后两个线段,还是只是最后一个线段?连接两个不同颜色的点的线是什么颜色的?
  • 我不知道有什么神奇的方法可以自动改变线条颜色。如果您需要帮助,您应该问一个更具体的问题 - 即。你想怎么拆线?总是在星期三之前?

标签: r colors plot line


【解决方案1】:

也许我误解了您在这里需要什么,但在我看来,您可以在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)

【讨论】:

  • 谢谢,这正是我所要求的,感谢您的宝贵时间!
  • 如果您认为这是正确的答案,请单击答案左侧的勾号。勾号会变成绿色,这表明问题已经被这个答案解决了。这就是堆栈溢出的工作方式。当然,您可能想等一下,看看其他人是否提供了另一个答案。
猜你喜欢
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
相关资源
最近更新 更多