繁体   English   中英

R调色板不打印分配的颜色

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM