在R中改变某些范围的颜色

在R中改变某些范围的颜色,r,plot,R,Plot,我有一个数据框,我想在数据框中绘制一列。我希望列上的某些范围在绘图中是不同的颜色。例如:绘图应为黑色,但从位置1:100开始,它应为不同的颜色 理想情况下,这将是一个我可以实现的功能。数据框是这样的,我想画第4列,我想用R中的plot来做这件事 V1 V2 V3 V4 V5 newcol 1 ENSMUST00000000001 0 6692 3262 66.819600 0 2 ENSMUST00000000010 0

我有一个数据框,我想在数据框中绘制一列。我希望列上的某些范围在绘图中是不同的颜色。例如:绘图应为黑色,但从位置1:100开始,它应为不同的颜色

理想情况下,这将是一个我可以实现的功能。数据框是这样的,我想画第4列,我想用R中的plot来做这件事

                  V1 V2   V3   V4        V5 newcol
1 ENSMUST00000000001  0 6692 3262 66.819600      0
2 ENSMUST00000000010  0   33 2574  0.065572      0
3 ENSMUST00000000028  0 3648 2143 39.598600      0

这里有一种使用基本图形的方法。您只需添加一列,该列根据行号创建类别,然后根据该类别为点着色。在本例中,我使用了颜色值(使用
hcl
函数创建)作为类别名称,但是您当然可以使用您喜欢的任何颜色函数或值

dat = data.frame(y=rnorm(100))

dat$row.cut=cut(as.numeric(rownames(dat)), 
                breaks=c(0,25,50,75,100),
                labels=hcl(seq(15,275,length.out=4), 100,65))

plot(dat$y, pch=16, col=as.character(dat$row.cut))

您还可以动态指定颜色,而无需在数据框中创建新变量。例如:

plot(dat$y, pch=16, col=ifelse(rownames(dat) %in% c(26:50, 75:85), 
                               hcl(15,100,65), 
                               hcl(195,100,65)))

感谢以上回复。我发现这很管用

 start = 0; end = 500; col = 'blue'
 plot(file$V4, type='l')
 clip(x1=start,x2=end,y1=0,y2=max(file$V4))
 lines(file$V4, col=col, type='l')