更改给定日期的颜色?

问题描述:

我有这个情节,我需要从观察2,000向前改变线的颜色为红色。我已经使用ggplot完成了它,这很容易,但我想用Base R来完成。我一直在阅读一些帖子,但我还没有弄清楚我该怎么做。更改给定日期的颜色?

所以这就是它,一部分情节是蓝色的,另一部分是红色的。

我真的很感激任何建议或建议! Plot

您没有提供任何数据,所以我只能假设。这里使用基础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”的功能是不恰当的工具,也可以用一个looplines

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]) 
} 

enter image description here

+0

谢谢你,这个工作如果我使用直方图选项。我正在使用行选项。它是使用移动应用程序发送的消息每小时数据的调整时间序列(我不能发布数据)。所以我想这与直方图和线路完全不一样。 – adrian1121

+0

@ adrian1121尝试构建一个类似于您的数据集或交换值。我认为颜色不适用于使用“l”选项的矢量。我编辑了我的答案。 – Jimbou

更改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")) 

plot

试试这个:

df <- data.frame(ind = 1:5000, y = runif(5000, 0, 10)) 


plot(df$y, type="h", col= ifelse(df$ind < 2000, "blue", "red")) 

enter image description here