2016-08-11 54 views
1

我在南美的降水場範圍從0到70.我只對0到12之間的值感興趣,所以我想繪製場在此範圍內,其值> 12在極端顏色,我想要的顏色條圖例有一個尖的端部,表明每大於12的值是在該顏色,這樣的事情:如何爲圖像繪製一個尖的顏色條 - R

Example with the color bar the way I want it

有誰知道如何做到這一點?到目前爲止,我還沒有找到一種方法來製作除矩形彩條之外的其他方法。

+3

我建議你告訴我們,你如何會與普通的彩條......從一個工作示例做了。然後mod可以被提議和測試。 –

+0

我的意思是說,當使用'image.plot()'時,它會自動創建一個矩形的顏色條。 –

+0

'' image.plot' returns:「在指定的包和庫中沒有'image.plot'的文檔: 你可以試試'?? image.plot'」(也不知道你爲什麼迴應這個評論。有一個答案。) –

回答

5

一種方法是編寫自己的自定義顏色條繪圖功能,使用基本繪圖功能實現,如rect(),polygon()text()。例如:

arrowedColorBar <- function(ylow,yhigh,xcenter,xwidth,nums,...,cols=rainbow(length(nums)+2L)) { 
    x1 <- xcenter-xwidth/2; 
    x2 <- xcenter+xwidth/2; 
    ys <- seq(ylow,yhigh,len=length(nums)+2L); 
    y1 <- ys[1L]; 
    y2 <- ys[2L]; 
    polygon(c(x1,xcenter,x2),c(y2,y1,y2),col=cols[1L]); 
    for (i in seq_along(nums)) { 
     y1 <- ys[i+1L]; 
     y2 <- ys[i+2L]; 
     if (i<length(nums)) rect(x1,y1,x2,y2,col=cols[i+1L]); 
     text(x2,y1,nums[i],pos=4L,...); 
    }; ## end for 
    y1 <- ys[length(ys)-1L]; 
    y2 <- ys[length(ys)]; 
    polygon(c(x1,xcenter,x2),c(y1,y2,y1),col=cols[length(cols)]); 
    invisible(); 
}; ## end arrowedColorBar() 

plot(c(-80,-40),c(-60,20),pch=NA,xlab='x',ylab='y'); 
arrowedColorBar(-60,10,-45,1.3,c(1,2,3,4,5,7,10,13,15),font=2L); 

enter image description here

+0

太棒了!非常感謝你!我會試試這個,讓你知道。 –

+0

工作完美,再次感謝! –

相關問題