2014-02-12 46 views
1

數值向量範圍從負的每個值我有一個數字向量分配顏色到正

vector <- c(4.80,1.09,33.40,0.00,11.63,1.86,2.22,-10.95,-3.09,0.00,2.38,0.00, 
      43.46,12.55,-49.51,0.00,0.00,0.00,1.72,0.00,0.00,-0.74,0.00,-5.79) 

範圍從-49.510到43.460。

我想分配給每個號碼的顏色從這個調色板

palette <- colorRampPalette(colors=c("#FF0000", "#FFFF00")) 

範圍從「紅色」到「黃色」。我想爲0.00分配調色板的中心值,其他數字分別指向「#FF0000」或「#FFFF00」的調色板值,分別用於負值和正值 - 與距離爲0.00的距離成正比。

這可能嗎?我應該把我的向量分成幾個區間嗎?

注:我使用plot()

+0

您是否使用了一個接近零是沒有什麼不同基地陰謀?看看'ggplot2':'ggplot(data.frame(x = seq_along(vector),y = 1,col = vector),aes(x,y,color = col))+ geom_point(size = 8)' ,這足夠嗎? – tonytonov

+0

我沒有使用ggplot。我正在使用基本情節。 – CptNemo

回答

1

它可能不是答案,但是這是我試過了。

x<-c(4.80,1.09,33.40,0.00,11.63,1.86,2.22,-10.95,-3.09,0.00,2.38,0.00, 
     43.46,12.55,-49.51,0.00,0.00,0.00,1.72,0.00,0.00,-0.74,0.00,-5.79) 

    image(matrix(x), col=colorRampPalette(colors=c("#FF0000", "#FFFF00"))(length(x))) 
    image(matrix(x), col=colorRampPalette(colors=c("#FF0000", "#FFFF00"))(length(unique(x)))) 

enter image description here 從上面的意見,並在ggplot

x<-c(4.80,1.09,33.40,0.00,11.63,1.86,2.22,-10.95,-3.09,0.00,2.38,0.00, 
    43.46,12.55,-49.51,0.00,0.00,0.00,1.72,0.00,0.00,-0.74,0.00,-5.79) 

df<-data.frame(x=seq_along(x), y=10, col=x) 
ggplot(data.frame(x=seq_along(x), y=1, col=x), aes(x, y, color=col)) + geom_point(size=8)+ 
    scale_colour_gradient2(low="red", high="yellow", mid="white")+ 
    theme(panel.background = element_rect(fill = "black")) 

有趣的嘗試,似乎是因爲高+/- enter image description here