Verfasst am: 06.02.2013, 18:59
Titel: Farben in figure automatisch mit colormap setzen
Hallo zusammen,
ich habe mir jetzt schon einen Wolf recherchiert und verschiedenste Befehle ausprobiert aber bekomme es einfach nicht hin. Vielleicht kann mir ja hier jemand weiterhelfen..
Was ich machen möchte ist folgendes: Ich habe 7 Datenreihen, die ich in verschiedenen Farben (einer Farbpalette bzw. colormap) in einem Diagramm darstellen möchte.
Dazu habe ich zunächst mit dem Property-Editor alle Beschriftungen, etc. erstellt und das Ganze dann über "File" > "Generate Code" als Funktion exportiert. Im generierten Code habe ich dann noch kleine Änderungen wie z.B. eine Kantenglättung vorgenommen.
Das Problem ist nun, dass egal was ich anstelle, die Farben immer aus der "jet-Palette" von Matlab kommen, d.h. blau, rot, grün, usw. (siehe Anhang)
Ich möchte aber die Farben aus einer colormap wie z.B. "autumn" oder "summer" nehmen. Das Lustige ist, dass obwohl die Farben im Diagramm als blau, rot, grün etc. angezeigt werden, im Property-Editor unter "figure" immer die colormap angezeigt wird, die ich im Code der Funktion hinterlegt habe.
Als ob er das irgendwie nicht ordentlich darstellt oder so...
Anbei der Code für die Erstellung des Diagramms, bei dem bis auf sie colormap auch alles funktioniert:
Code:
% Hier der Code function createfigure(YMatrix1)
%CREATEFIGURE(YMATRIX1) % YMATRIX1: matrix of y data
% Auto-generated by MATLAB on 05-Feb-2013 18:38:40
Anscheinend kann man die colormaps nicht auf LinePlots anwenden. Daher habe ich es so gelöst, dass ich die Farbabstufungen aus der colormap ausgelesen habe und diese in einem neuen Vektor gespeichert habe. Die neuen Farben werden dann den LinePlots zugeordnet..
Hier der Code und im Anhang ein paar geplottete Beispiele falls wer mal die gleiche Frage hat:
Code:
function createfigure5(YMatrix1)
%CREATEFIGURE5(YMATRIX1) % YMATRIX1: matrix of y data
% Auto-generated by MATLAB on 07-Feb-2013 12:10:23
% Create figure
figure1 = figure('Renderer','OpenGL','PaperType','a4letter',...
'Name','Eigenverbrauchsanteil in Abhängigkeit vom Stromerzeugungs- und Verbrauchsverhältnis');
% Farbwerte neu setzen % Colormaps: hot,cool,hsv,jet,... (siehe http://www.mathworks.de/de/help/matlab/ref/colormap.html)
farbtabelle = hsv;
% Schleife generiert 64/Schrittweite Farbwerte for i=1:8:length(farbtabelle);
farbauswahl(i,:) = farbtabelle(i,:);
end
farbauswahl(all(farbauswahl ==0, 2), :) = [];
% 7 ist hier die Anzahl der Datenreihen (ggf. anpassen über Variable) for i=1:1:7;
set(plot1(i),'Color',farbauswahl(i,:));
end
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
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.