Verfasst am: 16.05.2019, 08:18
Titel: Colorbar an custom colormap zuweisen
Guten Tag,
ich habe ein kleines Problem mit der Anpassung der Colorbar. Und zwar erstelle ich mit einer Funkton einen Plot der mir einen Fahrtverlauf in verschiedenen Farben anzeigt, abhängig von einer dritten Variable. Dazu nutze ich eine selbst erstellte 16 farbige Colormap. Wenn ich nun eine Colorbar hinzufüge zum Plot hat sie aber die falschen Farben, bzw. da sie sich auf die Matlab urprüngliche Colormap bezieht.
Ich habe nun versucht der Colorbar meine custom map zuzuweisen, jedoch klappt es irgendwie nicht. Was kann man noch versuchen, wäre froh wenn jemand eine Idee hätte.
Danke im Vorraus
Code:
% % Worldview mit Farben bezüglich ACC_States closeall;
function plotc_accsts(x,y,acc_sts,marker)
%FUNCTION PLOTC(X,Y,V,'MARKER') plots the values of v colour coded
% at the positions specified by x and y, and v (z-axis) in a 3-D axis % system. A colourbar is added on the right side of the figure.
%
% The colorbar strectches from the minimum value of v to its % maximum in 9 steps (10 values).
%
% The last argument is optional to define the marker being used. The % default is a point. To use a different marker (such as circles, ...) send % its symbol to the function (which must be enclosed in '; see example).
%
% The plot is actually a 3D plot but the orientation of the axis is set % such that it appears to be a plane 2D plot. However, you can toggle % between 2D and 3D view either by using the command 'view(3)' (for 3D % view) or 'view(2)' (for 2D), or by interactively rotating the axis % system.
%
% Example: % Define three vectors % x=1:10;y=1:10;p=randn(10,1); % plotc(x,y,p)
%
% x=randn(100,1); % y=2*x+randn(100,1); % p=randn(100,1); % plotc(x,y,p,'d') % view(3)
cmapm = evalin('base','colmap');
% delete(gca) ifnargin <4
marker='.';
end
% map=jet(20); % map=colormap;
map = jet(16); %jet(length(colormap));
minacc_sts = 0;
maxacc_sts = 16;
% colorstep = (maxacc_sts-minacc_sts)/size(map,1); % Plot the points hold on
for nc=1:maxacc_sts
% iv: Vektor mit Indizes bei denen v in dem gesuchten Geschwindigkeitsbereich ist
iv = find(acc_sts == (nc-1)) ;
% iv10: Vektor mit Indizes bei denen iv eine 10ner Indize von v hat
iv10 = iv./10 == round(iv./10);
% ivv: Vektor mit 10ner Indizes von v
ivv = iv(iv10);
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.