2015-08-18 3 views
0

Я хочу нарисовать несколько строк на графике и для каждого сегмента в зависимости от оценки Я хочу построить цвет как градиент от синего (-значения) - белый (0 значений) - Красный (+ значения). Теперь, используя часть Сегменты моего кода, я могу это сделать, и если я дам конкретные цвета, например col="red" or col="blue", он работает хорошо. Так что из-за огромный размером моих данных я хотел затем автоматизировать его с помощью:R цветовая палитра не печатает назначенные цвета

rbPal <- colorRampPalette(c('red','white','blue')) 
jcolor<-rbPal(nrow(datasetsize)) 

Проблемы заключается в том, что, когда я получаю черчение данных, которые он просто строит случайные цвета, а не цвет я присвоенный с помощью цвета палитры, даже если проверка цветового кода html соответствует правильному цвету. Любая помощь будет принята с благодарностью. (См ниже код)

TEST ДАННЫЕ:

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]) 
} 

Я получаю изображение, как это: enter image description here

Вместо изображения, как это: enter image description here

+0

Спасибо за Подсказка. Я заметил, что это проблема с чтением цветового кода от jonzo. Если я удалю это и просто вытащить цвета из jcolor, он работает хорошо. – Jcrow06

ответ

0

Ok так выглядит, что проблема заключается в следующем разделе:

jonzo<-cbind(data,jcolor) 

Это считывает цветовой код # FF0000 из связанные с столбцом файлы. Если вы просто прочитать код цвета от объекта, jcolor затем он работает, и следующее изображение получается: enter image description here

Вот скорректированный код для тех, кто заинтересован:

### 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]) 
} 
Смежные вопросы