主要内容

控制绘图函数如何选择颜色和线条样式

当你在同一个坐标轴上绘制多个数据集时,MATLAB®自动为绘图对象分配不同的颜色(可能还有线条样式和标记)。在调用绘图函数时,可以自定义颜色、线条样式和标记,也可以在调用函数后设置属性。

例如,绘制一条红色实线和一条绿色虚线。然后在红线上添加方形标记,在绿线上添加圆形标记。

P1 = plot([0 1 2 3],“- r”);持有P2 = plot([1 2 3 4],“——g”);持有%添加标记p1。标志=“平方”;p2。标志=“o”

中描述了这种方法指定绘图颜色.它对于定制几个图的各个方面非常有用。但是,它在其他情况下就不那么灵活了,比如在循环中绘制数据,或者将矩阵数据传递给绘制函数。在这种情况下,您可以更改控制MATLAB如何自动分配颜色、线条样式和标记的属性。

请注意

以下示例中的部分功能从R2019b开始可用,部分功能从R2020a开始可用。要在以前的版本中修改绘图颜色和线条样式,请参见为什么情节线颜色不同?而且用于绘图的线样式- LineStyleOrder

自动分配工作原理

MATLAB为绘图对象分配颜色(例如散射,酒吧对象中列出的颜色进行循环ColorOrder坐标轴的性质。的ColorOrder属性包含一个RGB三元组数组,其中每个RGB三元组定义一种颜色。默认的ColorOrder数组包含7种颜色。如果你创建的对象比颜色多,颜色就会重复。

如果绘图对象支持线条样式和标记,MATL金宝appAB也循环遍历列表中的LineStyleOrder坐标轴的性质。的LineStyleOrder属性包含字符序列的单元格数组,其中每个字符序列对应于一个行样式(或与标记组合的行样式)。默认的LineStyleOrder数组只包含实线样式,(“-”).所有的颜色ColorOrder数组中使用一个字符序列LineStyleOrder在使用下一个序列之前。对于每个新的绘图对象,循环继续进行。如果物体的数量多于颜色和字符序列的组合,那么循环就会重复。

对于给定的一对ColorOrder而且LineStyleOrder特定绘图对象的数组、颜色、线条样式和标记由对象的值决定SeriesIndex,这是R2020a开始的新属性。默认情况下,SeriesIndex属性是一个数字,对应于对象的创建顺序,从1.用MATLAB来计算指数的数值ColorOrder而且LineStyleOrder数组。

例如,创建一个带有两种颜色的axis对象ColorOrder数组(红色和蓝色)和两个行样式LineStyleOrder数组(实线和虚线)。然后画出五条线。

Ax =轴;斧子。ColorOrder = [1 0 0;0 0 1];斧子。LineStyleOrder = {“- - -”“——”};持有I = 1:5 plot([I I +2])结束持有

包含两种颜色和两种线条样式的五条线的情节。

该表列出了SeriesIndex,索引成ColorOrder数组,并将索引放入LineStyleOrder前面绘图中的每一行的数组。

SeriesIndex 索引ColorOrder数组 索引LineStyleOrder数组 行外观
第一行 1 1 1 红色实线
第二行 2 2 1 蓝色实线
第三行 3. 1 2 红色虚线
第四行 4 2 2 蓝色虚线
第五行 5 1 1 红色实线

控件,可以更改绘图对象的颜色、线条样式和标记ColorOrderLineStyleOrder坐标轴的属性,或者通过改变SeriesIndex绘图对象的属性。

改变配色方案和线条样式

改变了ColorOrder属性将更改绘图的配色方案。改变了LineStyleOrder属性更改绘图中使用的线样式(可能还有标记)。例如,使用默认颜色和线条样式在循环中绘制8行。

Ax =轴;持有I = 0:7 plot([I I +2])结束持有

图形包含8条实线,有7种颜色。第一种颜色是重复的。

取代ColorOrder数组使用包含四种颜色的新数组(也可以使用colororder功能)。然后替换LineStyleOrder数组,使用包含两种行样式的新单元格数组。线条会自动使用新的颜色和线条样式。

%更新R2019b或更高版本的现有图斧子。ColorOrder = [1 0 0;0 10 0;0 0 1;0 0 0];斧子。LineStyleOrder = {“- - -”“——”};

包含四条颜色和两种线条样式的八条线条的地块。

将索引更改为ColorOrder而且LineStyleOrder数组

改变了SeriesIndex属性将索引更改为ColorOrder而且LineStyleOrder数组。当您希望一个对象的颜色、线条样式和标记与另一个对象相匹配时,更改索引非常有用。

例如,在一个循环中绘制四个正弦波,改变波长和相位。对于每个正弦波,设置SeriesIndex性质根据波长。在结果图中,具有相同波长的正弦波也具有相同的颜色。

X = linspace(0,10,200);Ax =轴;持有= 0:3:3T = 1:2 plot(x,sin(x/ T +),“SeriesIndex”, t)%要求R2020a及以上版本结束结束持有

包含两个蓝色正弦波和两个橙色正弦波的图形。

要使一对正弦波更突出,将颜色顺序更改为不同的颜色集。

斧子。ColorOrder = [0.8 0.8 0.9;0.2 0.2 0.8];

图中包含两个浅紫色正弦波和两个深紫色正弦波。

另请参阅

功能

属性

相关的话题