Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在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' 以外 'replace'任何内容,则可以将'LineStyleOrder''ColorOrder'属性更改为所需的任何值, PLOT将不要将它们重置为默认值。例如,这也应该做您想要的:

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

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:13


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.