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

Contour-Plot Farbe bestimmten Werten zuweisen

 

muchael
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2015, 14:02     Titel: Contour-Plot Farbe bestimmten Werten zuweisen
  Antworten mit Zitat      
Hallo,

ich erstelle Plots von Geschwindigkeitsfeldern und Wirbelstärke. Für die Wirbelstärke will ich einen Farbverlauf von positiv ROT zu Negativ BLAU erstellen, wobei die Null WEISS sein soll. (Der Wertebereich variiert zwischen den vielen Plots die ich erstelle.)

Bisher verwende ich eine vorgegebene Colormap (Jet). Ich bekomme es auch hin einen Verlauf von rot zu weiß zu blau zu erstellen, aber ich habe nicht herausfinden können, wie ich der Null die Farbe weiß zuordne.

Danke im Voraus für die Hilfe.

Viele Grüße
Michael

Code:

% Create figure

figure1 = figure('Position',get(0,'ScreenSize'));
colormap('jet');
set(figure1,'Color',[1 1 1])
% Create axes
axes1 = axes('Parent',figure1,'BoxStyle','full','Layer','top','FontName','Helvetica','FontSize',15,...
    'Position',[0.13 0.176991264683711 0.213405797101449 0.677008735316289]);
box(axes1,'on');
hold(axes1,'on');
axis equal;

% Create contour
contour(x1,y1,u1,'DisplayName','u','LineStyle','none',...
    'LevelStep',0.006,...
    'Fill','on');

% Create xlabel
xlabel('x [mm]');

% Create ylabel
ylabel('y [mm]');

usw...
 
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

an colormap kannst du auch eine beliebige, selbst definierte Farbskala angeben. Du musst nur eine mx3-Matrix übergeben, in deren Zeilen die Farbcodes als RGB-Werte angegeben sind.
Man kann sich auch eine Standard-Colormap zu holen und diese nach Wunsch anzupassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
muchael
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2015, 15:09     Titel:
  Antworten mit Zitat      
Hallo,

vielen Dank für die schnelle Antwort. Aber dessen bin ich mir bewusst. Mein Problem ist, dass die null nicht immer an der gleichen Stelle ist und ich quasi eine variable colormap brauche (null immer weiß, max rot, min blau). Ist das möglich?

Viele Grüße
Michael
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

dann musst du herausfinden, auf die wievielte Farbe 0 abgebildet wird, und diese weiß setzen:
Code:
M = membrane - rand();
surf(M)
colorbar
%%
c = colormap;
limits = get(gca, 'CLim');
xgrid = linspace(limits(1), limits(2), size(c,1));
ygrid = 1:size(c,1);
idx = floor(interp1(xgrid, ygrid, 0));
c(idx:idx+1, :) = [1 1 1; 1 1 1];
colormap(c)


Alternativ kannst du CLim setzen, damit die Farbskala unabhängig von den Daten gewählt wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
muchael
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 15.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2015, 15:55     Titel:
  Antworten mit Zitat      
Hallo nochmal,

sorry, ich stand grad auf dem Schlauch. Aber das hilft mir enorm weiter. Vielen Dank.
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.