2016-10-30 3 views
2

Ich versuche, meine berechneten Daten mit begrenzten Kontur Etiketten und und Farben zu zeichnen Kontur, wie in der oberen Platte dieses Bildes gegeben:Wie zeichnen Konturen mit ausgewählten Farben und formatiert Etiketten

here

Aber ich endete mit einer etwas anderen Handlung (siehe die Handlung am unteren Rand des obigen Bildes). Ich möchte, dass meine Handlung mit den folgenden drei Spezifikationen

  1. einschränken Kontur Etiketten in 2 oder 3 Dezimalstellen im Bereich
  2. Entfernen Plotkennungen ändern, wo die Konturen miteinander zu nahe sind.
  3. Grundstück mit zwei Farben, wie in dem ersten Bild ist

Hier mein Code:

f=load('fort.15'); 
ngridx=180; 
ngridy=180; 
x=f(:,3); 
y=f(:,4); 
z=f(:,5); 
xlin=linspace(min(x),max(x),ngridx); 
ylin=linspace(min(y),max(y),ngridy); 
[X,Y]=meshgrid(xlin,ylin); 
Z=griddata(x,y,z,X,Y,'linear'); 
[c,h] = contour(X,Y,Z,20); 
set(h,'LineWidth',2,'LineColor',rgb('SteelBlue'),'ShowText','on',... 
     'LabelSpacing',800) 
axis([0 6 -5 7]) 

ich in Matlab kein Experte bin. Bitte helfen Sie mir, die richtige Handlung zu bekommen. Ich füge meine Datendatei here an.

Antwort

0

Nun, ich habe nur 2 von 3 Deines der Ebene, in der die Farbe (hier scl) ändern muss, und Sie gut zu gehen:

scl = 6.5; % switch color level; 
[c1,h1] = contour(X,Y,Z,scl:max(Z(:)),'Color','r'); 
hold on 
[c2,h2] = contour(X,Y,Z,min(Z(:)):scl,'Color','b'); 
clabel(c2,h2); 
axis([0 6 -5 7]) 

Die Idee hier ist Ihr Grundstück von zwei bis builed Konturobjekte mit dem Befehl hold on. Der Vektor scl:max(Z(:)) definiert die Levvels in der ersten Kontur zu zeigen, und die rote Farbe und keine lables. Und eine ähnliche Logik funktioniert für die zweite Kontur. Wenn Sie einige rote Konturen labeln oder Etiketten von den blauen entfernen möchten, müssen Sie h2 in der Funktion clabel durch einen Vektor der Ebenen ersetzen, die Sie beschriften möchten. Wenn du in den Kommentaren mo spezifizierst werde ich meine Antwort aktualisieren.

contour

die Formatierung der Lables ändern, ist irgendwie wohl möglich, aber es ist wirklich nicht trivial, so dass ich es verlassen jetzt durch.

+0

Danke Freund. Es klappt. Aber ich brauche mehr blaue Konturlinien. Was soll ich dafür tun? – Saheer

+0

Ändern Sie 'min (Z (:)): scl' in' min (Z (:)): 0.5: scl', zum Beispiel ... – EBH

Verwandte Themen