when Plotting multiple lines using plot, how do adjust line color with jet?
16 次查看(过去 30 天)
显示 更早的评论
You can pass a 2d Vector to plot and create multiple lines. I want to specify the color in vector format as well but cant figure out how to do it without a for loop. As an example I set up x and y as 2d matricies which describe concentric circles of radius 1 through 5. You can pass x and y directly to plot and it will create the desired plot with the default colors. I just want to adjust the colors using the jet function, but it seems it can only be done with a for loop. Is this possible?
R = 1:5; %Radius [1x5]
th = [0:360].'; %Theta [361x1]
x = cosd(th)*R; % [361x5]
y = sind(th)*R; % [361x5]
cmap = jet(length(R)); % [5x3]
figure
plot(x,y)
% plot(x,y,'Color',cmap.') %? This doesnt work!!
figure
hold on
for kk = 1:length(R)
plot(x(:,kk),y(:,kk),'Color',cmap(kk,:).')
end
0 个评论
采纳的回答
Walter Roberson
2021-7-12
In a release after yours, R2019b, it became possible to use the new colororder() function in order to change the color of lines, including existing lines.
In your release (R2017b -- and thank you for including that information!), what you should do is set the axes ColorOrder property before drawing the lines:
R = 1:5; %Radius [1x5]
th = [0:360].'; %Theta [361x1]
x = cosd(th)*R; % [361x5]
y = sind(th)*R; % [361x5]
cmap = jet(length(R)); % [5x3]
fig = figure();
ax = axes(fig);
ax.ColorOrder = cmap;
hold(ax, 'on')
plot(ax, x,y)
hold(ax, 'off')
Be sure to have "hold" turned on for the axes, as ColorOrder is one of the properties that is replaced when MATLAB does its default plot initialization.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Performance 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
