WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

contourf plot hilfe benötigt

 

wizkid
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 16.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2008, 12:47     Titel: contourf plot hilfe benötigt
  Antworten mit Zitat      
Hallo Ich benötige Hilfe bei einem contourf plot.

Ich habe einen Datensatz mit Werten zwischen -15 und 15 (wasserhöhen) und landmassen sind als -9999 markiert.

Mit folgemden Code habe ich nun die skala für die Konturen gesetzt:

% Minimum berechnen, dass nicht -9999 ist
min_elev=min(elev(elev~=-9999))

% Maximum berechnen, dass nicht 9999 ist
max_elev=max(elev(elev~=-9999))

% Contourschrittweiten
schritt=(max_elev+min_elev)/30


Und dem plot befehl:

contourf(lonc,latc,elev,[min_elev:schritt:max_elev]);

Wie ist es am einfachsten zu realisieren, dass alle Landmassen(-9999) in einer bestimmten Farbe (z.b. schwarz) geplottet werden, und alle anderen werte in dem intervall das in dem contourf steht?

vielen dank im vorraus für tips,
mit besten grüßen
Private Nachricht senden Benutzer-Profile anzeigen


wizkid2

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2008, 16:48     Titel:
  Antworten mit Zitat      
Code:

% Minimum berechnen, dass nicht -9999 ist
min_elev=min(elev(elev~=-9999))

% Maximum berechnen, dass nicht 9999 ist
max_elev=max(elev(elev~=-9999))


% land suchen (matrix mit 0=land, 1=kein land)
topo = (squeeze(elev(1,:,:)) ~= -9999);
colormap(gray)
contourf(lonc,latc,topo); % add land in black
hold on


colormap(jet)
% "squeeze"
sq_elev=squeeze(elev(i,:,:));

% alle -9999 = NaN setzen
landindex = find(sq_elev==-9999);
sq_elev(landindex)=NaN;

imagesc(lonc,latc,sq_elev,[min_elev max_elev])


 

so weit würde alles bestens klappen, wenn nicht die colormap vom vorhergehenden plot überschrieben würde.
hat jemand einen tip wie man am besten 2 verschiedene plots mit 2 verschiedenen colormaps in eine figure bekommt?

gruß
 
Michaela
Forum-Century

Forum-Century


Beiträge: 239
Anmeldedatum: 12.07.07
Wohnort: ---
Version: bis 2007b
     Beitrag Verfasst am: 16.04.2008, 20:14     Titel:
  Antworten mit Zitat      
Also, um gezielt einen Eintrag in der Colormap zu verändern (zB unten grau und oben schwarz um Ausreisser zu finden) kannst du so vorgehen;

Code:

function nullgrau
 
% legt den tiefsten Wert der colormap auf grau
 
  c = colormap;
  c(1,:) = [0.7 0.7 0.7];
  colormap(c);
  top;


 


oder
Code:

function topweiss
 
% legt den höchsten Wert der colormap auf weiss
 
  c = colormap;
  c(end,:) = [1 1 1];
  colormap(c);
  top;
 


Irgendwo in der matlab Hilfe oder Demo habe ich mal ein Beispiel gesehen, wie man eine Landkarte einfärbt: also ein braun-grau-grün colormap für Land, und ein blaues für Meer. Vielleicht wirst Du ja fündig?
_________________

---------------------------------------------------------------
Leider habe ich daheim zwar Internet aber kein Matlab - daher sind alle Syntaxbeispiele circa Angaben.....
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.