Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中设置绘图的默认线型?_Matlab_Coding Style_Plot_Linestyle - Fatal编程技术网

如何在MATLAB中设置绘图的默认线型?

如何在MATLAB中设置绘图的默认线型?,matlab,coding-style,plot,linestyle,Matlab,Coding Style,Plot,Linestyle,我有一组数据要绘制 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能帮我操作。

您的第一个倾向可能是在绘制数据之前更改轴的方向。不幸的是,高级打印功能(如)将在打印前将轴的默认值重置为其默认值
'-'
。一种解决方案是由同一位置的所有轴对象使用。例如:

set(0,'DefaultAxesLineStyleOrder',{'-',':'});
将首先使用实线,然后使用虚线,然后根据需要对每个绘图再次重复。请注意,您还可以通过更改根目录的默认值,使用自定义的高级打印函数。以下示例将对其进行更改,使其仅在红色、绿色和蓝色之间循环:

set(0,'DefaultAxesColorOrder',[1 0 0; 0 1 0; 0 0 1]);
与担心不同的线条样式不同,解决问题的另一个方法是将默认颜色顺序设置为具有7种以上的颜色

一旦根上的默认属性值被设置,它们将保持这种方式,直到MATLAB关闭。重新打开时,默认特性值将设置回出厂时定义的值。像这样的命令不会将默认属性设置回其出厂定义的值。相反,您应该将默认属性值设置为
'remove'
,以撤消用户定义的值,如下所示:

set(0,'DefaultAxesLineStyleOrder','remove');  %# Sets the default back to '-'
作为更改所有轴对象使用的默认特性的另一种替代方法,如果将单个轴的属性更改为除
'replace'
之外的任何内容,则可以将或特性更改为所需的任何内容,并且不会将其重置为默认值。例如,这也应该满足您的要求:

set(gca,'NextPlot','add','LineStyleOrder',{'-',':'});
plot(temp+offset');

因此,如果OP希望样式循环
'r-'、'g-'、'b-'、'r:'、'g:'、'b:'
,他们可以将
'ColorOrder'
设置为
[100;01 0;01]
,将LineStyleOrder设置为
{'-'、'-'、':'、':'、':':'、':':',':'>
,对吗?@Jonas:事实上,他们只需要将LineStyleOrder设置为
{code>'-','-','>{,因为PLOT将首先使用第一行样式在所有颜色之间循环一次,然后使用第二行样式再次循环一次。换句话说,颜色在一个内循环中循环,线条样式在一个外循环中循环。谢谢你的回答,只是一个简单的问题,如果我叫clear,默认值会被重置吗all@mor22:简短回答:否。有关更多详细信息,我更新了我的答案,以解决如何将默认属性值重置为出厂定义的设置。我尝试删除添加的颜色,正如您在答案中解释的那样。但是,打开MATLAB时,会出现奇数颜色,而不是默认颜色。为了解决这个问题,我保存了原始样式:
OC=get(0,'defaultaxescolorder')然后稍后使用
集(0,'DefaultAxeColorder',OC)将其还原。我不知道为什么
删除
对我不起作用。