【问题标题】:How do I set the default linestyle for plots in MATLAB?如何在 MATLAB 中设置绘图的默认线型?
【发布时间】:2011-05-14 14:05:47
【问题描述】:

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

temp=0.5*rand(500,10);
[~,offset]=meshgrid(1:500,1:10);
figure(101)
plot(temp+offset')

如何将线条样式设置为在线条颜色经过一个循环后自动更改为下一种样式?

对于这个例子,我希望第 8-10 行具有不同的线条样式。我可以手动完成,但如果我可以在某处设置默认选项,我希望 Matlab 为我完成。

【问题讨论】:

    标签: matlab coding-style plot linestyle


    【解决方案1】:

    您的第一个倾向可能是在绘制数据之前更改坐标轴的 'LineStyleOrder' property。不幸的是,像PLOT 这样的高级绘图功能会在绘图之前将坐标轴的'LineStyleOrder' property 重置为其默认值'-'。一种解决方案是change the default valueroot 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');
    

    【讨论】:

    • 所以如果 OP 希望样式循环 'r-','g-','b-','r:','g:','b:',他们可以将 'ColorOrder' 设置为 [1 0 0; 0 1 0; 0 0 1] 并将 LineStyleOrder 设置为 {'-','-','-',':',':',':'},对吗?
    • @Jonas:实际上,他们只需要将 LineStyleOrder 设置为{'-',':'},因为 PLOT 将首先使用第一种线条样式循环所有颜色,然后再使用第二种线条样式。换句话说,颜色在内循环中循环,线型在外循环中循环。
    • 感谢您的回答,只是一个简单的问题,如果我调用 clear all 是否会重置默认值
    • @mor22:简短回答:不。有关更多详细信息,我更新了我的答案以解决如何将默认属性值重置为其工厂定义的设置。
    • 我尝试按照您在回答中的说明删除添加的颜色。但是,当您打开 MATLAB 时,会出现奇数颜色而不是默认颜色。为了解决这个问题,我保存了原始样式:OC = get(0,'DefaultAxesColorOrder');,然后稍后使用set(0,'DefaultAxesColorOrder',OC); 恢复它。我不知道为什么 remove 对我不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2010-10-22
    • 2017-04-06
    相关资源
    最近更新 更多