2012-11-13 10 views
19

में ग्रेडियेंट किंवदंती पहले मैंने बेस ग्राफिक्स (LINK) में एन मानों का ढाल बनाने के बारे में पूछा था। अब मैं इसके साथ एक ढाल किंवदंती बनाना चाहता हूं।बेस

enter image description here

यहाँ कुछ कोड समान क्या मैं के साथ काम कर रहा हूँ करने के लिए:

colfunc <- colorRampPalette(c("red", "blue")) 
plot(1:20, 1:20, pch = 19, cex=2, col = colfunc(20)) 

enter image description here

+2

'plotrix में color.legend' कुछ – Dason

+0

में देखना मैं कैसे' पैकेज में image.plot' 'क्षेत्रों पर विचार करेंगे प्रतीत हो रहा है यह करता है – mnel

+0

@Dason color.legend यह बहुत ही अनैतिक है क्योंकि आपको चारों ओर घूमना पड़ता है क्योंकि इसे 4 समन्वय बिंदुओं की आवश्यकता होती है। मुझे यह पसंद है लेकिन इसे जल्दी से उपयोग करने का कोई तरीका नहीं मिला है। –

उत्तर

21

यहाँ का एक उदाहरण है मेरे आदर्श ggplot2 की ढाल किंवदंतियों की तरह कुछ होगा स्क्रीन

को विभाजित करने के लिए grDevices और layout से rasterImage का उपयोग करके पहले सिद्धांतों से एक किंवदंती कैसे बनाएं
layout(matrix(1:2,ncol=2), width = c(2,1),height = c(1,1)) 
plot(1:20, 1:20, pch = 19, cex=2, col = colfunc(20)) 

legend_image <- as.raster(matrix(colfunc(20), ncol=1)) 
plot(c(0,2),c(0,1),type = 'n', axes = F,xlab = '', ylab = '', main = 'legend title') 
text(x=1.5, y = seq(0,1,l=5), labels = seq(0,1,l=5)) 
rasterImage(legend_image, 0, 0, 1,1) 

enter image description here

12

पार्टी के लिए देर हो चुकी है, लेकिन यहां एक किंवदंती असतत cutoffs का उपयोग कर पेश एक आधार संस्करण है। सोचा कि यह भविष्य के खोजकर्ताओं के लिए उपयोगी हो सकता है।

layout(matrix(1:2,nrow=1),widths=c(0.8,0.2)) 
colfunc <- colorRampPalette(c("white","black")) 

par(mar=c(5.1,4.1,4.1,2.1)) 
plot(1:10,ann=FALSE,type="n") 
grid() 
points(1:10,col=colfunc(10),pch=19,cex=1.5) 

xl <- 1 
yb <- 1 
xr <- 1.5 
yt <- 2 

par(mar=c(5.1,0.5,4.1,0.5)) 
plot(NA,type="n",ann=FALSE,xlim=c(1,2),ylim=c(1,2),xaxt="n",yaxt="n",bty="n") 
rect(
    xl, 
    head(seq(yb,yt,(yt-yb)/10),-1), 
    xr, 
    tail(seq(yb,yt,(yt-yb)/10),-1), 
    col=colfunc(10) 
    ) 

mtext(1:10,side=2,at=tail(seq(yb,yt,(yt-yb)/10),-1)-0.05,las=2,cex=0.7) 

और एक उदाहरण छवि:

enter image description here

+0

अच्छी तरह से किया, बहुत अच्छा! – MichaelChirico

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^