改变R中某些范围的颜色

时间:2014-07-11 22:26:48

标签: r plot

我有一个数据框,我想在数据框中绘制一个列。我希望我希望沿着列的某些范围在图中是不同的颜色。例如:情节应为黑色,但从位置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

2 个答案:

答案 0 :(得分:2)

这是使用基本图形的一种方式。您只需添加一个列,该列根据行号创建类别,然后按该类别对点进行着色。在这种情况下,我使用颜色值(使用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))

enter image description here

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

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

答案 1 :(得分:0)

感谢您的上述回复。我发现这很好用。

 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')