आर

2015-06-04 11 views
9

में एक रंग मैट्रिक्स के लिए एक संख्या मैट्रिक्स परिवर्तित मैं निम्नलिखित 4x4 संख्या मैट्रिक्स संख्या 0-4 से युक्त है:आर

0 1 0 3 
3 2 1 4 
4 1 0 2 
3 3 0 1 

मुझे समझ में कैसे नंबर एक रंग मैट्रिक्स चुना का उपयोग कर में matrices कन्वर्ट करने के लिए चाहते हैं आर का उपयोग करके रंग और विशिष्ट वर्ग आयाम (लंबाई x चौड़ाई) स्पष्ट होने के लिए, मैं रंग मैट्रिक्स को एक मैट्रिक्स अभिविन्यास में विशिष्ट मानों का प्रतिनिधित्व करने के लिए रंगीन वर्गों का उपयोग करके एक आकृति के रूप में परिभाषित कर रहा हूं। एक अन्य कार्यक्रम से एक उदाहरण 4x4 इस प्रकार है:

enter image description here

मैं, संख्या के लिए रंग कोड आवंटित करने के लिए उदाहरण के लिए होगा:

0 = FFFFFF 
1 = 99FF66 
2 = 66FF33 
3 = 33CC00 
4 = 009900 

लेकिन मैं नहीं जानता कि जहां यह एक साथ डाल शुरू करने के लिए । मुझे कल्पना है कि मुझे कलर स्क्वायर के लिए आयाम भी निर्दिष्ट करना होगा।

मेरा लक्ष्य 10 संख्यात्मक मानों के साथ आर में डेटा फ्रेम आयात करने और 20x20 जितना बड़ा मैट्रिक्स के लिए इन रंग चार्ट बनाने में सक्षम होना है।

उत्तर

10

यहाँ मैं क्या कर सकता है:

d<-read.table(text=" 
0 1 0 3 
3 2 1 4 
4 1 0 2 
3 3 0 1") 

cols <- c(
'0' = "#FFFFFF", 
'1' = "#99FF66", 
'2' = "#66FF33", 
'3' = "#33CC00", 
'4' = "#009900" 
) 
# the names aren't necessary here. 

image(1:nrow(d), 1:ncol(d), as.matrix(d), col=cols) 

enter image description here

यदि आप चाहें, rotate the matrix के लिए उन्मुखीकरण अलग होने के लिए आपको कर सकते हैं:

image(1:nrow(d), 1:ncol(d), t(apply(d, 2, rev)), col=cols) 

सब से छुटकारा पाने के पाठ और सीमाएं, आप कोशिश कर सकते हैं:

image(1:nrow(d), 1:ncol(d), as.matrix(d), col=cols, 
    xaxt="n", yaxt="n", bty="n", xlab="", ylab="") 
+0

मैंने टेक्स्ट और सीमाओं के बिना रंग मैट्रिक्स उत्पन्न करने के लिए निम्न कोड का उपयोग किया: 'छवि (1: nrow (d), 1: ncol (d), t (लागू (डी, 2, rev)), col = cols, xaxt = 'n', yaxt = 'n', ann = गलत, bty = 'n') ' यह खूबसूरती से काम करता है! अब मेरे पास एकमात्र मुद्दा यह है कि वर्ग थोड़ा आयताकार आया। पहलू अनुपात को लॉक करने का कोई तरीका है जैसे रंग वर्ग पूरी तरह से वर्ग बने रहें? – Cameron

+3

@ कैमरॉन आप 'asp = 1' को 'छवि'' के तर्कों में से एक के रूप में जोड़ने का प्रयास कर सकते हैं:' image (1: nrow (d), 1: ncol (d), t (लागू (डी, 2, rev)) , col = cols, xaxt = 'n', yaxt = 'n', ann = FALSE, bty = 'n', asp = 1) '। – Jota

+1

या स्क्वायर आयामों के साथ एक नई विंडो खोलें (उदाहरण के लिए 'विंडोज़ (चौड़ाई = 6, ऊंचाई = 6) ') और उसके बाद मार्जिन को प्रत्येक तरफ' पैरा (mar = c (1,1,1,1) पर सेट करें) ' – thelatemail