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 verändern

 

Axel W

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.08.2014, 22:52     Titel: Contourf-Plot verändern
  Antworten mit Zitat      
Moin,

ich brauche Hilfe bei einem Problem mit der contourf-Fuktion.
Ich habe weltweite Daten, Die Lücken (NaN's) enthalten. Ungünstigerweise färbt contourf diese NaN's beim plotten in weiß ein.
<< NaN's in the Z-data leave white holes with black borders in the contour plot.>>
Gibt es irgendeine Möglichkeit diese Standardfarbe transparent zu machen bzw in eine andere Farbe zu wechseln?
Gruß Axel


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.08.2014, 23:02     Titel:
  Antworten mit Zitat      
Hallo,

transparent ist mir nicht bekannt.
Farbe anpassen: du kannst die NaN auf einen anderen Wert (z.B. -inf) setzen

Code:
Z = membrane;
Z(15:20,15:20) = NaN;
Z(isnan(Z)) = -inf;
contourf(Z)
 


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Axel W

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2014, 09:39     Titel:
  Antworten mit Zitat      
Danke für die Antwort, funktioniert so aber leider noch nicht wie ich es mir wünsche. Mit dem Code erhalte ich das Bild:

Code:

Z = membrane;
Z(15:20,15:20) = NaN;
Z(isnan(Z)) = -inf;
contourf(Z)
colorbar
caxis([-0.8 0.8])
 




Eigentlich sollte der Kasten mit den INF's doch wenigstens die dunkelste Farbe annehmen, nicht irgendwas dazwischen Confused
Außerdem kann man die Anzahl der Farbabstufungen nicht mehr variieren, wenn man INF's in Z hat. Oder gibts da nen Trick?

Gruß Axel
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2014, 10:13     Titel:
  Antworten mit Zitat      
Hallo,

eine andere, vielleicht bessere Idee: einen patch über das NaN-Gebiet legen.
Die Herausforderung würde ggf. sein, dieses Gebiet zu bestimmen.

Code:
Z = membrane;
Z(15:20,15:20) = NaN;
contourf(Z, 20)
colorbar
caxis([-0.8 0.8])
patch([14 21 21 14 14], [14 14 21 21 14], [0 0 1])
 


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Axel W

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2014, 10:32     Titel:
  Antworten mit Zitat      
ok, das ist echt fummelig Confused

Gibt es nicht die Möglichkeit, die Farbe direkt im contourf-Befehl umzuändern und dies dann als neue Funktion zu speichern? Irgendwo muss es ja festgelegt sein welche Farbe die NaN's haben sollen. Ich bin nur leider nicht gut genug, um die Stelle im Skript zu finden. Sad

Gruß Axel
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.08.2014, 11:46     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich bin nur leider nicht gut genug, um die Stelle im Skript zu finden.

Der Debugger hilft da ungemein. Es gibt eine Zeile
Code:

die den weißen Hintergrund erzeugt.

Wenn du in einer Kopie (!) der Funktion nach diesem Block die Zeile
Code:
set(cax, 'Color', [1 0 0]);

einfügst, dann sollten die Nan z.B. rot sein.

Grüße,
Harald
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 - 2025 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.