我想要绘制一系列数据
temp=0.5*rand(500,10);
[~,offset]=meshgrid(1:500,1:10);
figure(101)
plot(temp+offset')
如果线条颜色经过一个循环后,如何将线条样式设置为自动更改为下一个样式?
对于这个例子,我希望第8-10行具有不同的线条样式。我可以手动完成,但是如果我可以在某个地方设置默认选项,我想Matlab为我做这件事。
答案 0 :(得分:15)
您的第一个倾向可能是在绘制数据之前只更改轴的'LineStyleOrder'
property。不幸的是,像PLOT这样的高级绘图功能会在绘图之前将轴的'LineStyleOrder'
property重置为默认值'-'
。一种解决方案是change the default value处的所有轴对象使用root level。例如:
set(0,'DefaultAxesLineStyleOrder',{'-',':'});
首先使用实线,然后是虚线,然后根据需要再次重复每个绘图。请注意,您也可以通过更改根目录的默认值来使用具有高级绘图功能的自定义'ColorOrder'
property。以下示例将对其进行更改,以便PLOT仅在红色,绿色和蓝色之间循环:
set(0,'DefaultAxesColorOrder',[1 0 0; 0 1 0; 0 0 1]);
除了担心不同的线条样式之外,您问题的另一个解决方案是将默认颜色顺序设置为不仅仅有7种颜色。
一旦设置了root上的默认属性值,它们就会保持这种状态,直到MATLAB关闭。重新打开时,默认属性值将设置回其出厂定义的值。像CLEAR这样的命令不会将默认属性设置回工厂定义的值。相反,您应该将默认属性值设置为'remove'
以撤消用户定义的值,如下所示:
set(0,'DefaultAxesLineStyleOrder','remove'); %# Sets the default back to '-'
作为更改所有轴对象使用的默认属性的另一种方法,如果将单个轴的NextPlot
property更改为除 {{1然后,您可以将'LineStyleOrder'
或'ColorOrder'
属性更改为您想要的任何内容,PLOT不会将其重置为默认值。例如,这应该也是你想要的:
'replace'