您的第一反应可能是改变'LineStyleOrder'财产 http://www.mathworks.com/help/techdoc/ref/axes_props.html#LineStyleOrder在绘制数据之前先绘制坐标轴。不幸的是,高级绘图函数如PLOT http://www.mathworks.com/help/techdoc/ref/plot.html将重置'LineStyleOrder'财产 http://www.mathworks.com/help/techdoc/ref/axes_props.html#LineStyleOrder轴的默认值'-'
在绘图之前。一种解决方案是更改默认值 http://www.mathworks.com/help/techdoc/creating_plots/f7-21465.html被所有轴对象使用根级 http://www.mathworks.com/help/techdoc/ref/rootobject.html。例如:
set(0,'DefaultAxesLineStyleOrder',{'-',':'});
将首先使用实线,然后使用虚线,然后根据需要对每个图再次重复。请注意,您还可以使用自定义'ColorOrder'财产 http://www.mathworks.com/help/techdoc/ref/axes_props.html#ColorOrder通过更改根处的默认值来使用高级绘图函数。下面的例子将改变它PLOT http://www.mathworks.com/help/techdoc/ref/plot.html仅在红色、绿色和蓝色之间循环:
set(0,'DefaultAxesColorOrder',[1 0 0; 0 1 0; 0 0 1]);
解决问题的另一种解决方案是将默认颜色顺序设置为超过 7 种颜色,而不是担心不同的线条样式。
一旦设置了根上的默认属性值,它们将保持这种状态,直到 MATLAB 关闭。重新打开时,默认属性值将设置回工厂定义的值。命令如CLEAR http://www.mathworks.com/help/techdoc/ref/clear.html不会将默认属性设置回其工厂定义的值。相反,您应该将默认属性值设置为'remove'
撤消用户定义的值,如下所示:
set(0,'DefaultAxesLineStyleOrder','remove'); %# Sets the default back to '-'
作为更改默认属性的另一种替代方法all轴对象,如果您更改NextPlot财产 http://www.mathworks.com/help/techdoc/ref/axes_props.html#NextPlot单个轴到任何东西except 'replace'
然后你可以改变'LineStyleOrder' http://www.mathworks.com/help/techdoc/ref/axes_props.html#LineStyleOrder or 'ColorOrder' http://www.mathworks.com/help/techdoc/ref/axes_props.html#ColorOrder属性到任何你想要的和PLOT http://www.mathworks.com/help/techdoc/ref/plot.html不会将它们重置为默认值。例如,这也应该满足您的要求:
set(gca,'NextPlot','add','LineStyleOrder',{'-',':'});
plot(temp+offset');