colororder
说明
示例
在绘图前设置颜色
将图窗的色序设置为四种颜色。定义一个 x 坐标向量和四个 y 坐标向量。然后绘制每组坐标。
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
在绘图后设置颜色
绘制七个同心四分之一圆。
hold on for r=1:7 x = linspace(0,r,500); y = sqrt(r.^2-x.^2); plot(x,y,'LineWidth',15) end
将色序更改为七个十六进制颜色代码。
newcolors = {'#F00','#F80','#FF0','#0B0','#00F','#50F','#A0F'}; colororder(newcolors)
在条形图中设置颜色
显示三个条形序列。然后将色序设置为蓝色、紫色和灰色。
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)
为双 y 轴图的两侧设置颜色
在调用 yyaxis
之前设置图窗的色序会为每个 y 轴设置颜色。左侧使用第一种颜色,右侧使用第二种颜色。如果指定两种以上的颜色,则任一侧都不会使用多余的颜色。
将 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])
为双 y 轴图的活动侧设置颜色
在调用 yyaxis
之后设置图窗的色序会为活动侧设置颜色。
激活左侧 y 轴并绘制三条线。将线型序列设置为实线,并将左侧 y 轴颜色更改为蓝色。然后将色序设置为三个蓝色梯度。
% 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)
激活右侧 y 轴并绘制两条线。将右侧 y 轴颜色更改为黑色。然后将色序设置为黑色。
% Right side yyaxis right plot([4 3; 2 1]) ax.YColor = 'black'; colororder('black')
从色序中排除数据序列
当使用颜色参数调用绘图函数时,绘图函数会使用该颜色,而不是使用色序中的下一种颜色。
将图窗的色序设置为红色、品红色和蓝色。调用 scatter
函数以绘制一组散点。然后绘制第二组散点,并将标记指定为黑色星号。
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)
带返回参数调用 nexttile
函数,以获取第二个图块的坐标区对象。在第二个图块中绘制三条线。然后获取坐标区的色序矩阵,并在 C
中返回输出。将 C
中的第一种颜色更改为紫色,并将坐标区色序设置为修改后的 C
矩阵。
ax = nexttile;
plot(ax,[4 5 6; 1 2 3],'LineWidth',2)
C = colororder(ax);
C(1,:) = [0.5 0 1];
colororder(ax,C)
输入参数
newcolors
— 新颜色
RGB 三元组矩阵 | 颜色名称数组 | 'default'
新颜色,指定为一个 RGB 三元组矩阵、一个颜色名称数组或 'default'
。
RGB 三元组矩阵
指定一个 m×3 矩阵,其中每行都是一个 RGB 三元组。RGB 三元组是一个三元素向量,包含颜色的红、绿和蓝分量的强度。强度必须处于范围 [0,1]
中。例如,以下矩阵将新颜色定义为蓝色、深绿色和橙色:
newcolors = [1.0 0.0 0.0 0.0 0.4 0.0 1.0 0.5 0.0];
由颜色名称或十六进制颜色代码组成的数组
指定颜色名称、短名称或十六进制颜色代码的任意组合。
要指定一种颜色,请将
newcolors
设置为字符向量或字符串标量。例如,newcolors = 'red'
将红色指定为色序中的唯一颜色。要指定多种颜色,请将
newcolors
设置为字符向量元胞数组或字符串数组。例如,newcolors = {'red','green','blue'}
将颜色指定为红色、绿色和蓝色。
十六进制颜色代码以井号 (#
) 开头,后跟三个或六个 0
到 F
范围内的十六进制数字。这些值不区分大小写。因此,颜色代码 '#FF8800'
与 '#ff8800'
、'#F80'
与 '#f80'
是等效的。
下表列出了颜色名称和短名称,以及等效的 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"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" |
默认颜色
指定 'default'
以将色序设置为七种默认颜色。此选项可用于在您临时更改色序后重置色序。以下是默认颜色的 RGB 三元组和十六进制颜色代码。
RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|
[0 0.4470 0.7410] | "#0072BD" | |
[0.8500 0.3250 0.0980] | "#D95319" | |
[0.9290 0.6940 0.1250] | "#EDB120" | |
[0.4940 0.1840 0.5560] | "#7E2F8E" | |
[0.4660 0.6740 0.1880] | "#77AC30" | |
[0.3010 0.7450 0.9330] | "#4DBEEE" | |
[0.6350 0.0780 0.1840] | "#A2142F" |
数据类型: single
| double
| char
| cell
| string
target
— 目标坐标区、图窗或图
图窗 | 坐标区 | 独立可视化
目标,指定为下列值之一:
图窗。新颜色会影响图窗中所有坐标区的内容。
任何类型的坐标区对象:
Axes
、PolarAxes
或GeographicAxes
对象。新颜色仅影响指定坐标区的内容。使用
stackedplot
、scatterhistogram
、parallelplot
或geobubble
函数创建的独立可视化效果。
详细信息
色序
色序控制 MATLAB 用来在坐标区内绘制多个数据序列时所用的颜色集。根据图形对象(例如 Line
、Scatter
和 Bar
对象)的创建顺序为其分配颜色。
颜色以矩阵形式存储在坐标区的 ColorOrder
属性中。调用 colororder
函数可取代该矩阵。
提示
如果您为图窗设置了色序,则在您调用绘图函数时颜色保持不变。但是,如果将坐标区对象传递给
colororder
函数,您必须首先调用hold on
才能使颜色在您调用绘图函数时保持不变。如果对坐标区设置了
ColorOrderIndex
或LineStyleOrderIndex
属性,新色序不会影响现有绘图。只有在您调用hold on
然后调用绘图函数之后,新颜色才会生效。
版本历史记录
在 R2019b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)