![]() |
如何在MATLAB中为绘图设置默认线型?
我有一个要绘制的数据数组
temp=0.5*rand(500,10); [~,offset]=meshgrid(1:500,1:10); figure(101) plot(temp+offset') 线条颜色经过一个周期后,如何设置线条样式以自动更改为下一个样式? 对于此示例,我希望第8-10行具有不同的线条样式。我可以手动进行,但如果可以在某处设置默认选项,我希望Matlab为我完成。 [B]回答:[/B] 您的第一个倾向可能是在绘制数据之前只更改轴的[URL="http://www.mathworks.com/help/techdoc/ref/axes_props.html#LineStyleOrder"]'LineStyleOrder'属性[/URL] 。不幸的是,高级绘图功能(例如[URL="http://www.mathworks.com/help/techdoc/ref/plot.html"]PLOT)[/URL]会在绘图之前将轴的[URL="http://www.mathworks.com/help/techdoc/ref/axes_props.html#LineStyleOrder"]'LineStyleOrder'属性[/URL]重置为其默认值'-' 。一种解决方案是在[URL="http://www.mathworks.com/help/techdoc/ref/rootobject.html"]根级别[/URL] [URL="http://www.mathworks.com/help/techdoc/creating_plots/f7-21465.html"]更改[/URL]所有轴对象使用[URL="http://www.mathworks.com/help/techdoc/creating_plots/f7-21465.html"]的默认值[/URL] 。例如: set(0,'DefaultAxesLineStyleOrder',{'-',':'}); 将首先使用实线,然后使用虚线,然后根据需要对每个图再次重复。请注意,您还可以通过更改根目录的默认值,将自定义[URL="http://www.mathworks.com/help/techdoc/ref/axes_props.html#ColorOrder"]'ColorOrder'属性[/URL]与高级绘图功能一起使用。以下示例将对其进行更改,因此[URL="http://www.mathworks.com/help/techdoc/ref/plot.html"]PLOT[/URL]仅在红色,绿色和蓝色之间循环: set(0,'DefaultAxesColorOrder',[1 0 0; 0 1 0; 0 0 1]); 不用担心线条样式不同,解决该问题的另一种方法是将默认颜色顺序设置为仅包含7种以上的颜色。 在根目录上设置默认属性值后,它们将保持这种状态,直到关闭MATLAB。重新打开后,默认属性值将重新设置为其出厂定义的值。像[URL="http://www.mathworks.com/help/techdoc/ref/clear.html"]CLEAR[/URL]这样的命令不会将默认属性设置回其出厂定义的值。相反,您应该将默认属性值设置为'remove'以撤消用户定义的值,如下所示: set(0,'DefaultAxesLineStyleOrder','remove'); %# Sets the default back to '-' 作为更改[I]所有[/I]轴对象使用的默认属性的另一种选择,如果将单个轴的[URL="http://www.mathworks.com/help/techdoc/ref/axes_props.html#NextPlot"]NextPlot属性[/URL]更改为[I]除[/I] 'replace' [I]以外[/I] 'replace'任何内容,则可以将[URL="http://www.mathworks.com/help/techdoc/ref/axes_props.html#LineStyleOrder"]'LineStyleOrder'[/URL]或[URL="http://www.mathworks.com/help/techdoc/ref/axes_props.html#ColorOrder"]'ColorOrder'[/URL]属性更改为所需的任何值, [URL="http://www.mathworks.com/help/techdoc/ref/plot.html"]PLOT[/URL]将不要将它们重置为默认值。例如,这也应该做您想要的: set(gca,'NextPlot','add','LineStyleOrder',{'-',':'}); plot(temp+offset'); [url=https://stackoverflow.com/questions/4258341]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 01:11。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.