你知道一种方法以某种方式使MATLAB中的绘制线最大可区分吗?我知道通过this nice function from the file exchange生成最大可区分颜色,但如果线条非常接近,如下所示,区分它们仍然非常困难。可能不可能,然后以对数方式缩放轴,是吗??
修改:图片网址以获得更好的观看次数:http://i.stack.imgur.com/JIF1E.png
答案 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...]
。您将获得彩色条纹线条,每条线条都有一个洞,另一个可见。