2010-10-15 5 views

उत्तर

87

आप अपने आप को साजिश बहुत आसानी से उपयोग करते हुए इस तरह की बना सकते हैं में निर्मित फ़ंक्शन imagesc और text और ग्राफिक्स ऑब्जेक्ट्स के लिए कई पैरामीटर समायोजित करना।

mat = rand(5);   %# A 5-by-5 matrix of random values from 0 to 1 
imagesc(mat);   %# Create a colored plot of the matrix values 
colormap(flipud(gray)); %# Change the colormap to gray (so higher values are 
         %# black and lower values are white) 

textStrings = num2str(mat(:),'%0.2f'); %# Create strings from the matrix values 
textStrings = strtrim(cellstr(textStrings)); %# Remove any space padding 
[x,y] = meshgrid(1:5); %# Create x and y coordinates for the strings 
hStrings = text(x(:),y(:),textStrings(:),...  %# Plot the strings 
       'HorizontalAlignment','center'); 
midValue = mean(get(gca,'CLim')); %# Get the middle value of the color range 
textColors = repmat(mat(:) > midValue,1,3); %# Choose white or black for the 
              %# text color of the strings so 
              %# they can be easily seen over 
              %# the background color 
set(hStrings,{'Color'},num2cell(textColors,2)); %# Change the text colors 

set(gca,'XTick',1:5,...       %# Change the axes tick marks 
     'XTickLabel',{'A','B','C','D','E'},... %# and tick labels 
     'YTick',1:5,... 
     'YTickLabel',{'A','B','C','D','E'},... 
     'TickLength',[0 0]); 

यहाँ है आंकड़ा इस उत्पन्न करता है और::

alt text

आप X- अक्ष टिक लेबल आप भी चौड़ा और अतिव्यापी एक-दूसरे की जा रही चयन के साथ मुसीबत में चलाते हैं, तो यहाँ है यहाँ एक उदाहरण है आप इसे कैसे संभाल कर सकते हैं: MATLAB के

  • नए संस्करणों: यह निश्चित नहीं है ve rsion यह जोड़ा गया था, लेकिन नए संस्करण अक्ष अक्षरों में अब properties '{एक्स | वाई | जेड} टिकलबेलरोटेशन' है, जो आपको लेबल को घुमाने और उन्हें बेहतर फिट करने की अनुमति देता है। MATLAB के

  • पुराने संस्करण: पुराने संस्करणों के लिए आप MathWorks File Exchange पर कुछ प्रस्तुतियाँ कि Brian Katz से टिक लेबल पाठ, XTICKLABEL_ROTATE की तरह घुमा सकते हैं पा सकते हैं।

+1

+1: प्रदान किए गए मुकाबले ज्यादा बेहतर प्रदर्शन। –

+4

अधिक सामान्य समाधान के लिए, आपको ग्रेस्केल कोलोमाप पृष्ठभूमि पर टेक्स्ट का रंग निर्धारित करने के लिए 'माध्य' ('gca, 'CLim') के बजाय 'औसत' (' gca, 'CLim') के विरुद्ध तुलना करना चाहिए। – Amro

+0

@Amro: अच्छा सुझाव! मैंने इसे कोड में शामिल किया। – gnovice

1

मैं तुम्हें Matlab के लिए राजी है कि आकर्षित करने के लिए, यदि आप फ़ाइल एक्सचेंज आप पा सकते हैं किसी को पहले से ही कोड लिखा है पर दिखाई दे सकता है उम्मीद है। लेकिन अगर आपके पास एमएस एक्सेल का उपयोग करने के लिए कोड नहीं है, तो यह बहुत आसान होगा।

संपादित करें: तो मैंने इसे कुछ और विचार दिया और यहां मैं जो आया था। मैंने एसओ को ग्राफिक्स पोस्ट करने में महारत हासिल नहीं की है, इसलिए मेरा विश्वास करो, इससे आपको समाधान की ओर ले जाया जाएगा। लेकिन यह एक्सेल के साथ ईमानदारी से आसान होगा।

सबसे पहले अपने डेटा मानों के साथ एक मैट्रिक्स परिभाषित करें; मैं निम्नलिखित में मैट्रिक्स G पर कॉल करता हूं। अब

image(G); 
colormap(gray) 

, मैं एक अच्छा ग्राफिक पाने के लिए कुछ लगभग नगण्य, डेटा rescaling करना है, किया था, लेकिन इस सांख्यिक कुल्हाड़ियों के साथ एक ग्रे पैमाने पर साजिश का उत्पादन करना चाहिए: तब आदेश पर अमल। अब, अपनी आकृति विंडो पर जाएं और साजिश उपकरण खोलें।

एक्स अक्ष का चयन करें और Ticks बटन दबाएं। आपको बस इतना करना है कि लेबल को उन ग्रंथों में संपादित करें जिन्हें आप चाहते हैं। वाई अक्ष के लिए वही करें। साजिश पर वर्गों में संख्याएं लिखें - एनोटेशन मेनू से टेक्स्ट बॉक्स का उपयोग करें।

आपके बारे में बहुत कुछ झुकाव के बाद आपको इच्छित ग्राफिक होगा। इस बिंदु पर, मेरा सुझाव है कि आप मेनू कमांड फ़ाइल चुनें एम-फाइल जेनरेट करें और बस यही करें। यदि आप भविष्य में ऐसे ग्राफिक्स प्रोग्रामेटिक रूप से बनाना चाहते हैं तो जेनरेट की गई एम फ़ाइल को एक उचित फ़ंक्शन में बदल दें जो आप चाहते हैं।

लेकिन यह अभी भी Excel में बहुत आसान है।

1

आप केवल (जैसे अगर यह विरल है) अपने मैट्रिक्स में शून्य/गैर शून्य प्रविष्टियों को देख के बारे में परवाह है, तो spy का उपयोग करें।

अन्य, imagesc का उपयोग करें।

पुनश्च: मैं अपनी छवि को एक्सेस नहीं कर सकता

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

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