我有一个要绘制的数据数组

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/

10-09 06:49
查看更多