[英]R color palette not printing the assigned colors
我想在图表上绘制一些线,并根据分数对每个线段绘制颜色,以将颜色绘制为蓝色(-值)-白色(0值)-红色(+值)的渐变。 现在,使用代码的细分部分,我可以执行此操作,如果我指定了特定的颜色,例如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])
}
好的,看起来问题出在以下部分:
jonzo<-cbind(data,jcolor)
这将从列绑定文件中读取颜色代码#FF0000。 如果您只是从jcolor对象中读取颜色代码,则它可以工作并生成以下图像:
这是针对那些感兴趣的人的调整后的代码:
### 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)
### Plot data
for(l in 1:nrow(jonzo)){
startpos<-jonzo$Start[l]
endpos<-jonzo$End[l]
segments(startpos,2,endpos,2,col=jcolor[l])
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.