Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σας,
 

Έχω την εξής άσκηση :
1) Διαβάστε την εικόνα Greece.tif και το αρχειο clc_legend.xls.

2) Υπολογίστε τα ποσοστά εμφάνισης για κάθε τύπο land use που εμφανίζεται στη στήλη 
label2 στο αρχείο clc_legend.xls. Δημιουργήστε ένα bar plot με τα ποσοστά που 
υπολογίσατε και βάλτε colorbar, τίτλο και ονομάστε τους άξονες

 

Θα ήθελα να δημιουργήσω ένα bar plot όπου το ραβδρόγραμμα να παίρνει διάφορα χρώματα ανάλογα με τις χρήσεις γης, στον άξονα Χ να υπάρχουν οι τιμές τις πρώτης στήλης του clc_legend.xls και να υπάρχει επίσης ένα legend με τις χρήσεις γης που και αυτές θα βγαίνουν μέσα από το clc_legend.xls (στήλη 4)

 

Υπάρχει κάποιος που να γνωρίζει;;;

Ευχαριστώ πολύ!!

 

Δημοσ.

Εάν έχεις φτάσει μέχρι να έχεις διαβάσει και τα δύο αρχεία (την εικόνα και τον .xls) τότε.

 

 

Μπορείς να κάνεις bar plot με την εντολή bar. Εάν το δηλώσεις ως:

 

 

hf1 = bar()

 

τότε με το hf1 μπορείς να αλλάξεις ότι θες στο διάγραμμα. Δες για figure handles στο MATLAB. 

 

 

 

Εάν δεν έχεις φτάσει μέχρι εκεί, τότε:

 

Ψάξε στο google να δεις πως διαβάζουν ένα xls και κάνε το.

Ψάξε στο google να δεις πως διαβάζουν μία εικόνα και κάνε το.

Φτιάξε τον κώδικα μέχρι το σημείο που λέω στην αρχή.

Κάνε αυτά που λέω στην αρχή. 

  • Like 1
Δημοσ.

Thank you!!!!!

έκανα και το bar plot και με χρώματα όλα κομπλέ... απλά θέλω τώρα να μου εμφανίσει στον άξονα Χ τις τιμές της πρώτης στήλης του αρχείου excel και να μου δημιουργηθεί δεξιά του bar plot ένα legend με τα χρώματα και την ονομασία των χρήσεων γης που βγαίνουν από το αρχείο excel συγκεκριμένα της στήλης 4 ώστε να εξηγώ τα χρώματα του bar plot...εκεί έχω κολλήσει δηλαδή....

Δημοσ.

ααα... ΟΚ!

 

 

Οι τιμές/ετικέτες στις τιμές του άξονα x αλλάζουν δύσκολα... ένα εύκολο shortcut είναι να φτιάξεις το διάγραμμα και μετά από το παράθυρο του figure πας: Edit -> Axes properties και εκεί πας στο ticks και αλλάζεις τα labels του άξονα σε ό,τι θες. 

 

Για το legend... όπως το είπες. Legend. Δες τι κάνει η εντολή legend :)

  • Like 2
Δημοσ. (επεξεργασμένο)

Ε δεν είναι και τόσο δύσκολο. Δες τις xlabel και ylabel. Επίσης ρίξε και μια ματιά στο παρακάτω παράδειγμα.

%Author: Dr.Fuzzy
%Title: Comparison of implementation resources

%Global settings
clear all; clc, close all

h=figure;
barmap=[0.7 0.7 0.7;...
        0.05 .45 0.1];
colormap(barmap);

%Slices
iba=[280/37680*100 50/37680*100 73/37680*100 34/37680*100 79/37680*100 44/37680*100]'; 
b=[205/37680*100 45/37680*100 63/37680*100 9/37680*100 44/37680*100 44/37680*100]';
bars1=[iba b];
x=[1 2 3 4 5 6];
bar(x,bars1);

lh=legend('id:7','id1');
set(lh,'units','pixels');
lp=get(lh,'outerposition');
set(lh, 'FontSize',9);
set(lh,'outerposition',[lp(1:2)+[15 20],70,25]);

axis([0.5 6.5 0 0.9]);
a1=get(gca,'Children');
ylabel('% of available');
title('Slices');

set(gca,'XTickLabel','');
k1a=text(x+0.1,bars1(:,1)+0.08,num2str(bars1(:,1),'%0.2f'),...
    'HorizontalAlignment','center',...
    'VerticalAlignment','bottom','FontSize',8);
set(k1a,'Rotation',90);
k1b=text(x+0.45,bars1(:,2)+0.08,num2str(bars1(:,2),'%0.2f'),...
    'HorizontalAlignment','center',...
    'VerticalAlignment','bottom','FontSize',8);
set(k1b,'Rotation',90);

ax=gca;
set(ax, 'FontSize',9);
set(ax, 'XTick',x,'XTickLabel',{'LQG','KBE','A','B', 'K', 'LQR'});
Επεξ/σία από Dr.Fuzzy
  • Like 1
Δημοσ.

Dr.Fuzzy

 

Από ό,τι κατάλαβα είναι το "TickLabel" attribute που θέλει όχι το axis label. 

 

 

Σωστό αυτό που γράφεις, αλλά από το να εξηγεί κανείς για τα handles και πότε παίρνεις τίνος και βρες το ένα και το άλλο... προτίμησα το quick and dirty του axes properties. 

Δημοσ.

και καλά έκανες, άλλωστε και εγώ εκτός από ειδικές περιπτώσεις που θέλω το αποτέλεσμα να είναι "publishing attractive" με το quick and dirty way το κάνω, όπως είπες. Κακά τα ψέματα ο τρόπος που έκανα post είναι μαζοχισμός!

Δημοσ.

Μαζοχισμός αλλά για τίποτα batch processing είναι μονόδρομος (και λίγοι ξέρουν το πως να το κάνουν έτσι :P plus με τίποτα eval και string manipulation μπορείς να κάνεις παπάδες για δυναμικά παραγόμενα διαγράμματα).... αλλιώς θα πρέπει σε κάθε .fig να κάθεσαι να αλλάζεις τα labels για να κάνεις eps.... (π.χ.)

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...