更改给定日期的颜色?
问题描述:
我有这个情节,我需要从观察2,000向前改变线的颜色为红色。我已经使用ggplot完成了它,这很容易,但我想用Base R来完成。我一直在阅读一些帖子,但我还没有弄清楚我该怎么做。更改给定日期的颜色?
所以这就是它,一部分情节是蓝色的,另一部分是红色的。
答
您没有提供任何数据,所以我只能假设。这里使用基础R plot
功能的解决方案:
# some data
set.seed(123)
d <-runif(3000, 0, 2)
d[sample(1:3000, 2800)] <- 0 # set some zero values
# A color vector
COL <- c(rep(1, 2000), rep(2, length(d)))
# and the plot using the histogram option:
plot(d, type="h", col=COL)
正如你说,“H”的功能是不恰当的工具,也可以用一个loop
和lines
:
plot(d, type="n")
for(i in 1:length(d)){
M <- cbind(c(i, i), c(d[i], 0)) # Matrix of start and end points of the line
lines(M, col=COL[i])
}
答
更改lines()颜色是一个小问题,我使用segments()来创建重复的终点数据。
# make a sample data
df <- data.frame(ind = 1:200, y = runif(200, 0, 10))
# combine df and df shifting one row
df <- cbind(df, rbind(df, c(NA, NA))[-1,])
plot(df[,1:2], type="n") # (edit) using Mr.Pereira's code, thanks.
segments(df[,1], df[,2], df[,3], df[,4], col = ifelse(df[,1] < 150, "blue", "red"))
谢谢你,这个工作如果我使用直方图选项。我正在使用行选项。它是使用移动应用程序发送的消息每小时数据的调整时间序列(我不能发布数据)。所以我想这与直方图和线路完全不一样。 – adrian1121
@ adrian1121尝试构建一个类似于您的数据集或交换值。我认为颜色不适用于使用“l”选项的矢量。我编辑了我的答案。 – Jimbou