MATLAB:使绘制的线条最大可区分

时间:2014-01-04 16:52:53

标签: matlab

你知道一种方法以某种方式使MATLAB中的绘制线最大可区分吗?我知道通过this nice function from the file exchange生成最大可区分颜色,但如果线条非常接近,如下所示,区分它们仍然非常困难。可能不可能,然后以对数方式缩放轴,是吗??

enter image description here

修改:图片网址以获得更好的观看次数:http://i.stack.imgur.com/JIF1E.png

2 个答案:

答案 0 :(得分:3)

实施Luis Mendo's suggestion的简单功能:

function out = interleaveFuncs(len,varargin)
% input lines must be column vectors, so they would be plotted correctly
% each input can contain more than one column (line) though
out = cat(2,varargin{:});
sz = size(out);
out(sub2ind(sz, 1:sz(1) ,mod(floor([0:sz(1)-1]/len),len)+1)) = nan;

像这样使用:

a=[1:10].';
plot(a,interleaveFuncs(3,[a a+1],a+2));

答案 1 :(得分:2)

color 外,您还可以通过标记类型('o''.',...)和行类型('-''--',...)。例如:

plot(x1,y1,'o--','color',color1)
plot(x2,y2,'+-.','color',color2)

另一种可能性(如评论中所示):您可以对函数应用一些“门控”:例如,y1.*[1 1 1 NaN NaN NaN 1 1 1 ...]y2.*[NaN NaN NaN 1 1 1 NaN NaN NaN...]。您将获得彩色条纹线条,每条线条都有一个洞,另一个可见。