ray*_*ica 28
好问题!MATLAB有一个默认的颜色顺序.请注意,R2014b之前的版本,MATLAB的默认颜色顺序使用喷射颜色映射.在喷射彩色图中,第一个图是蓝色,第二个图是绿色.对于R2014b之后的版本,这遵循parula颜色图,其中第一个图是浅蓝色,其次是第二个图是铜橙色.如果您确实想知道绘图的颜色顺序是什么,请确保在MATLAB中打开绘图,然后执行以下操作:
get(gca,'colororder')
Run Code Online (Sandbox Code Playgroud)
这将返回一个2D矩阵,其中每行为您生成的每个绘图提供红色,绿色和蓝色的比例.当我运行MATLAB R2013a和Mac OSX 10.9.5时,在我的机器上,这就是我得到的:
>> get(gca,'colororder')
ans =
0 0 1.0000
0 0.5000 0
1.0000 0 0
0 0.7500 0.7500
0.7500 0 0.7500
0.7500 0.7500 0
0.2500 0.2500 0.2500
Run Code Online (Sandbox Code Playgroud)
每行为您提供特定颜色的红色,绿色和蓝色值.第一行表示绘图上的第一种颜色,后面是表示第二种颜色的第二行,依此类推.
因此,上述颜色顺序为:
目前(2016年3月10日),我正在使用MATLAB R2015a,这是我得到的颜色图:
>> get(gca,'colororder')
ans =
0 0.4470 0.7410
0.8500 0.3250 0.0980
0.9290 0.6940 0.1250
0.4940 0.1840 0.5560
0.4660 0.6740 0.1880
0.3010 0.7450 0.9330
0.6350 0.0780 0.1840
Run Code Online (Sandbox Code Playgroud)
在这种情况下,RGB元组稍微复杂一些,因此很难通过查看颜色来推断它们是什么.
作为额外的奖励,我们可以为您创建一个可视化这些颜色的图像.假设您有图像处理工具箱,这是我编写的代码,用于为您放置在图中的每个绘图显示这些颜色.
colours = permute(get(gca, 'colororder'), [1 3 2]);
colours_resize = imresize(colours, 50.0, 'nearest');
imshow(colours_resize);
Run Code Online (Sandbox Code Playgroud)
以下是我对MATLAB R2013a的了解:
在MATLAB R2015a中再次运行此代码,这就是我得到的:
或者,您始终可以使用legend描述哪些直方图来自哪些数据.
Dev*_*-iL 20
存在用于此特定目的的色图 - lines(在R2006a之前引入).这是lines.m说:
%LINES Color map with the line colors.
% LINES(M) returns an M-by-3 matrix containing a "ColorOrder"
% colormap. LINES, by itself, is the same length as the current
% colormap. If no figure exists, MATLAB uses the length of the
% default colormap.
Run Code Online (Sandbox Code Playgroud)
如果打开文档lines,您可以看到一个非常类似于rayryeng答案中出现的预览图像:
因此,只要您使用默认值colormap,要知道第一n行的颜色,您需要做的就是调用lines(n).