MATLAB - 使用补丁绘制多个未连接的线并指定linecolor

时间:2017-10-26 13:22:12

标签: matlab colors patch

我想使用patch在一个命令中绘制多个unconnectes行。这些线条有不同的颜色,我想指定。不幸的是,补丁在黄色到蓝色区域使用随机颜色而不是我定义的颜色 - 我该如何解决这个问题?

clear all
close all
cla;

x=[];
y=[];
CC=[];
n=10;
for i=1:n
    % define start and end from i-th line
    x(end+1)=i;
    x(end+1)=i+1;
    % add nan to seperate lines
    x(end+1)=nan;

    % define start and end from i-th line
    y(end+1)=i;
    y(end+1)=1;
    % add nan to seperate lines
    y(end+1)=nan;

    CC(end+1,1:3)=0.1.*i;
end

%funktioniert
figure(1)
subplot(1,2,1)
h = patch(x', y', 0);
set(h,'LineWidth',2);
set(h,'cdata', CC, 'edgecolor','flat','facecolor','none')
title('wrong colors')

subplot(1,2,2)
for i=1:n
    xx=[1:3];
    yy=[i i i];
    line(xx,yy,'Color',CC(i,:))
    hold on
end
title('wanted colors')

非常感谢! smaica

1 个答案:

答案 0 :(得分:1)

如果您想绘制线条,请使用专用于此目的的功能plotline,而不是使用patch。只需将'ColorOrder'更改为您想要的颜色即可。

n = 10;
%Starting and ending point of lines in each col of x and y
x = [1:n; 2:n+1];    
y = [1:n; ones(1,n)]; 
CC = repmat(0.1:0.1:1,3,1).';   %Required colors
%Changing ColorOrder to required colors ( and turning the box (optional) )
set(gca, 'ColorOrder', CC, 'box', 'on');
line(x,y);    %or plot(x,y)

结果:

result