我想在绘图上绘制一些线条,并根据分数绘制每个线段,我希望将颜色绘制为蓝色( - 值) - 白色(0值) - 红色(+值)的渐变。
现在使用我的代码的Segments部分,我可以这样做,如果我给出一个特定的颜色,如col="red" or col="blue"
,它的效果很好。因此,由于数据的庞大规模,我希望使用以下内容自动化它:
rbPal <- colorRampPalette(c('red','white','blue'))
jcolor<-rbPal(nrow(datasetsize))
问题在于,当我绘制数据时,它只是绘制随机颜色,而不是我使用调色板指定的颜色,即使检查html颜色代码它是正确的颜色。任何帮助将不胜感激。 (见下面的代码)
测试数据:
Sample loc Start End p sm
S1 9 1000000 10000000 2 -7.5751
S2 9 11000000 18000000 6 -1.5906
S3 9 20000000 40000000 3 0
S4 9 50000000 70000000 2 0.8
S5 9 80000000 100000000 2 1.25
S6 9 110000000 140000000 6 7.789
代码:
### Read in Data
data<-read.table("stack_eg.txt",header=TRUE,sep="\t")
### Order Setdata Object
data<-data[order(data$sm,decreasing=T),]
### Setup Plot Space
plot(1, type="n", axes=T, xlab="X", ylab="Y",ylim=c(1,6),xlim=c(0,142000000))
### Color setup
rbPal <- colorRampPalette(c('red','white','blue'))
jcolor<-rbPal(6)
jonzo<-cbind(data,jcolor)
### Plot data
for(l in 1:nrow(jonzo)){
startpos<-jonzo$Start[l]
endpos<-jonzo$End[l]
segments(startpos,2,endpos,2,col=jonzo$jcolor[l])
}