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