# colororder

## 语法

``colororder(colorarray)``
``colororder(palettename)``
``colororder(target,___)``
``C = colororder``
``C = colororder(target)``

## 说明

### 设置颜色

``colororder(colorarray)` 为当前图窗的色序设置调色板。色序控制 MATLAB® 用来在坐标区内绘制多个数据序列时所用的颜色的排序。将 `colorarray` 指定为 RGB 三元组矩阵或颜色名称数组，如 ` ["red" "green" "blue"]`。如果图窗不存在，MATLAB 会创建一个图窗并为该图窗设置调色板。当您为图窗设置调色板时，会为该图窗中的所有坐标区设置调色板。`

``colororder(palettename)` 将颜色指定为预定义调色板名称之一，例如 `"gem"`、`"glow"` 或 `"sail"`。 (自 R2023b 起)`

``colororder(target,___)` 为目标图窗、坐标区或图（而不是当前图窗）设置调色板。`

### 获取颜色

``C = colororder` 返回当前图窗的颜色矩阵。`

``C = colororder(target)` 返回目标图窗、坐标区或图的颜色矩阵。`

## 示例

```newcolors = [0.83 0.14 0.14 1.00 0.54 0.00 0.47 0.25 0.80 0.25 0.80 0.54]; colororder(newcolors) % Define coordinates x = linspace(0,10); y1 = sin(x); y2 = sin(x-0.5); y3 = sin(x-1); y4 = sin(x-1.5); % Plot coordinates plot(x,y1,'LineWidth',2) hold on plot(x,y2,'LineWidth',2) plot(x,y3,'LineWidth',2) plot(x,y4,'LineWidth',2) hold off```

```x = [1 2]; y = [0 1 2 3; 1 2 3 4]; plot(x,y,"LineWidth",2)```

```newcolors = ["#0B0" "#00F" "#50F" "#A0F"]; colororder(newcolors)```

`colororder("sail")`

```bar([10 20 30; 25 35 45; 30 40 52]) newcolors = [0 0.5 1; 0.5 0 1; 0.7 0.7 0.7]; colororder(newcolors)```

`newcolors` 定义为包含两个 RGB 三元组的矩阵。设置图窗的色序，并基于左侧绘制两条线。然后基于右侧绘制两条线。

```newcolors = [0.40 0.30 0.90; 0.50 0.65 0.15]; colororder(newcolors) % Left side yyaxis left plot([1 2; 3 4]) % Right side yyaxis right plot([4 3; 2 1])```

```% Left side yyaxis left plot([1 2 3; 4 5 6]) ax = gca; ax.LineStyleOrder = '-'; ax.YColor = 'blue'; leftcolors = [0 0 1; 0 0.50 1; 0 0.80 1]; colororder(leftcolors)```

```% Right side yyaxis right plot([4 3; 2 1]) ax.YColor = 'black'; colororder('black')```

```newcolors = {'red','magenta','blue'}; colororder(newcolors) scatter(1:10,rand(1,10),'filled') hold on scatter(1:10,rand(1,10),'*k')```

```scatter(1:10,rand(1,10),'filled') hold off```

```tiledlayout('flow') nexttile plot([1 2 3; 4 5 6],'LineWidth',2)```

```ax = nexttile; plot(ax,[4 5 6; 1 2 3],'LineWidth',2) C = colororder(ax); C(1,:) = [0.5 0 1]; colororder(ax,C)```

```nexttile bar(rand(3,5)) title("gem")```

```ax2 = nexttile; bar(rand(3,5)) colororder(ax2,"reef") title("reef") ax3 = nexttile; bar(rand(3,5)) colororder(ax3,"meadow") title("meadow") ax4 = nexttile; bar(rand(3,5)) colororder(ax4,"earth") title("earth")```

## 输入参数

#### RGB 三元组矩阵

```colorarray = [1.0 0.0 0.0 0.0 0.4 0.0 1.0 0.5 0.0];```

#### 由颜色名称或十六进制颜色代码组成的数组

• 要指定一种颜色，请将 `colorarray` 设置为字符向量或字符串标量。例如，`colorarray = 'red'` 将红色指定为色序中的唯一颜色。

• 要指定多种颜色，请将 `colorarray` 设置为字符向量元胞数组或字符串数组。例如，`colorarray = {'red','green','blue'}` 将颜色指定为红色、绿色和蓝色。

`"red"``"r"``[1 0 0]``"#FF0000"`

`"green"``"g"``[0 1 0]``"#00FF00"`

`"blue"``"b"``[0 0 1]``"#0000FF"`

`"cyan"` `"c"``[0 1 1]``"#00FFFF"`

`"magenta"``"m"``[1 0 1]``"#FF00FF"`

`"yellow"``"y"``[1 1 0]``"#FFFF00"`

`"black"``"k"``[0 0 0]``"#000000"`

`"white"``"w"``[1 1 1]``"#FFFFFF"`

`"gem"`

`"gem12"`

`"glow"`

`"glow12"`

`"sail"`

`"reef"`

`"meadow"`

`"dye"`

`"earth"`

• 图窗。新颜色会影响图窗中所有坐标区的内容。

• 任何类型的坐标区对象：`Axes``PolarAxes``GeographicAxes` 对象。新颜色仅影响指定坐标区的内容。

## 提示

• 如果您为图窗设置了色序，则在您调用绘图函数时颜色保持不变。但是，如果将坐标区对象传递给 `colororder` 函数，您必须首先调用 `hold on` 才能使颜色在您调用绘图函数时保持不变。

• 如果对坐标区设置了 `ColorOrderIndex``LineStyleOrderIndex` 属性，新色序不会影响现有绘图。只有在您调用 `hold on` 然后调用绘图函数之后，新颜色才会生效。