我有一个要绘制的数据数组
temp=0.5*rand(500,10);
[~,offset]=meshgrid(1:500,1:10);
figure(101)
plot(temp+offset')
线条颜色经过一个周期后,如何设置线条样式以自动更改为下一个样式?
对于此示例,我希望第8-10行具有不同的线条样式。我可以手动完成,但如果可以在某处设置默认选项,我希望Matlab为我完成。
最佳答案
您的第一个倾向可能是在绘制数据之前只更改轴的 '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种以上的颜色。
一旦设置了根目录的默认属性值,它们将保持这种状态,直到关闭MATLAB。重新打开后,默认属性值将重新设置为其出厂定义的值。像CLEAR这样的命令不会将默认属性设置回其出厂定义的值。相反,您应该将默认属性值设置为
'remove'
以撤消用户定义的值,如下所示:set(0,'DefaultAxesLineStyleOrder','remove'); %# Sets the default back to '-'
作为更改所有轴对象使用的默认属性的另一种方法,如果将单个轴的
NextPlot
property更改为'replace'
以外的任何内容,则可以将 'LineStyleOrder'
或 'ColorOrder'
属性更改为所需的任何属性,并且PLOT不会将它们重置为其默认值。例如,这也应该做您想做的事情:set(gca,'NextPlot','add','LineStyleOrder',{'-',':'});
plot(temp+offset');
关于matlab - 如何在MATLAB中为绘图设置默认线型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4258341/