默认的Matlab默认线规格和颜色图是惊人的粗糙。这个函数通过在“感知”空间(而不是RGB空间)等距来创建可识别的颜色。它是基于辛西娅布鲁尔教授(colorbrewer!)的研究,但惊人地容易使用。
此函数用于创建N[R B G]颜色的Nx3数组
这些可以用来绘制许多线条,并具有可分辨和好看的颜色。
lineStyles=linspecer(N);为您制作N种颜色:lineStyles(ii,:)
colormap (linspecer);设置您的颜色地图,以容易区分的颜色和令人愉快的审美
线型=linspecer(N,“定性”);强制所有颜色都可区分(最多12种)
线型= linspecer (N,“顺序”);迫使颜色沿着光谱变化
_______________________________________________
展示颜色的例子。
%线颜色
N = 6;
X = linspace(0,π* 3,1000);
Y = bsxfun(@(x,n))sin(x+2*n*pi/ n), x。', 1: N);
C = linspecer (N);
轴('NextPlot','replacechildren','ColorOrder',C);
情节(X, Y,“线宽”,5)
ylim([-1.1.1]);
%简单线条颜色的例子
N = 6;X = linspace(0,π* 3,1000);
C = linspecer (N)
推迟;
对于ii=1:N
Y = sin (X + 2 * 2 *π/ N);
情节(X, Y,“颜色”,C (ii):),“线宽”,3);
坚持住;
结束
% COLORMAP例子
一个=兰德(15);
图;imagesc(A);%默认颜色映射
图;显示亮度图像(一);colormap (linspecer);% linspecer colormap
_______________________________________________
学分和功能来源:
这些颜色主要来自:
http://colorbrewer2.org以及Cynthia Brewer, Mark Harrower和宾夕法尼亚州立大学
她从心理测量学的角度研究了这一点,并精心制作了颜色
美丽地。
我从那里的许多人中做出选择,以决定在Matlab中绘制线条的最佳时机。我还对其中一种颜色做了一个小小的改变,我觉得它有点太亮了。此外,一些插值正在进行的顺序线样式。文件中包含Apache风格的软件许可证。
乔纳森·c·兰西(2021)。美丽和可分辨的线条颜色+彩图(//www.tianjin-qmedu.com/matlabcentral/fileexchange/42673-beautiful-and-distinguishable-line-colors-colormap),MATLAB中央文件交换。恢复.
受到启发的:天派,最大明显的颜色生成器,CubeHelix彩色地图生成器:美观且多功能!,ColorBrewer:吸引人且与众不同的彩色地图,Matlab 2048,rgb2hex和hex2rgb,感知统一颜色图,高效的2D直方图,不需要工具箱,超绘图工具
非常感谢。这是如此容易使用<3
谢谢!
效果好,使用方便。
功能强大(谢谢)。但为什么没有附带次要情节呢?
斯蒂芬提到的许可证问题有解决办法了吗?
谢谢你的帮助。
非常感谢。你的功能改进了我即将发表的论文中数字的颜色。
谢谢你的代码,它真的帮助我提高了我的PIC在我的纸工作
谢谢你漂亮的功能!
太棒了!
谢谢分享!
非常好,非常漂亮!
有用的
优秀的
好极了!
易于使用,谢谢你!
非常棒的函数,在MatlabR2014A和R2014b中工作得非常好。谢谢!
我喜欢它,很酷
在许可证问题上撒谎是一件卑鄙的事。
尽管作者写道“文件中包含一个APACHE风格的软件许可”,但实际上在下载的任何地方都没有提到APACHE许可。所提供的许可证实际上是一个BSD许可证,是MATLAB文件交换所支持的唯一许可证。万博1manbetx
此提交打破了Cynthia Brewer的ColorBrewer配色方案的许可条件,该条件要求包括她的APACHE许可:
http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html
注意,这个函数破坏了原始作者的版权,因为它没有包含版权声明本身:
http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html
非常有用的。如果接近黄色的颜色再深一些就更好了。
谢谢你分享这个文件,非常有用!
这是一段时间以来我对线条的标准颜色图。然而,我经常改变黄线的颜色——在白色背景下很难很好地识别。
感谢这个伟大的功能。这使得图形更好,更方便。
谢谢大家的评论,我很感激。
也感谢Stephen的建议。
让人印象深刻。将它设置为默认值
如果作者希望改进此提交文件的代码,则可能会对此感兴趣:
//www.tianjin-qmedu.com/help/matlab/matlab_prog/vectorization.html
在作者根据我的上一个评论所做的修改之后,我想我应该再看一遍这篇投稿。就像我之前所说的:
1.这个函数现在返回一个MATLAB标准的N*3数字色图。
2.默认大小现在是64,这仍然不匹配MATLAB的colormap函数的默认值。
3.现在有一个H1行(尽管这一行中可能应该包括“colormap”一词?)。
4.mlint消息已经被处理(在MATLAB R2012b上)。
5示例现在已完成!
6.现在叫“nargin”,而不是慢的“exist”。
7.“for”循环仍然用于完成基本的算术运算。这是由于数据存储在单元格数组中。如果数据只是简单地存储在数字数组中,那么所有这些“for”循环都可以被删除。
8.现在在for循环之前预分配单元格数组。
9当一个简单的第二个参数就足够时,不必要地使用“varargin”。
10.改进的例子。
11.仍然没有'See also'行链接到相关函数:"colormap", "plot", "jet", "hsv", "rgbplot",…
12ColorBrewer数据的分发没有所需的Apache许可证:
http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html
大多数问题都已经解决,提交的内容基本上是按照它所说的做的。但是代码的质量很差。特别是使用单元格数组存储数字数据,需要多个局部函数来执行基本的数字运算。MATLAB的名称来源于“矩阵实验室”:它被设计为对n执行数字运算数值矩阵,快!将数据存储在单元数组中,并使用多个“for”循环来实现基本的数值功能是对MATLAB的拙劣使用,因此,此提交比提供此功能所需的更大、更复杂。
两颗星为MATLAB用户介绍了比“jet”和“hsv”更好的彩色地图。
很漂亮,把这个作为默认的颜色贴图添加到我的启动中。m-不再伤害眼睛了。谢谢!
阅读本文后,您将获得关于颜色的重要参考:http://eagereyes.org/basics/rainbow-color-map
很漂亮,谢谢你!
多漂亮的颜色贴图--我的新默认值。谢谢!
谢谢!
谢谢你的反馈,斯蒂芬。我已经在周末更新了功能,包括了几乎所有你的建议。我希望它能很快被Mathworks批准。
修复上面的例子:通过设置“ColorOrder”轴属性,可以使用带有多线图的彩色地图:
N = 5;
轴('NextPlot'、'replacechildren'、'ColorOrder',cell2mat(linspecer(N)))
X = linspace(0,π* 3,1000);
Y = bsxfun(@(x,n))sin(x+2*n*pi/ n), x。', 1: N);
绘图(gca,X,Y,'线宽',5)
11.m文件的帮助部分应该包括“参见……”,以连接到相似和相关的功能。
12.分发colorbrewer方案需要包含一份原始Apache版权许可的副本。
我一直在寻找更好看,可识别的彩色地图,以取代标准的,这是最初的文件似乎提供。然而,这不是一个下降的替代颜色地图,而且m文件有多个缺点,这削弱了想法:
1.非标准单元阵列输出:所有标准MATLAB颜色映射返回Nx3数值矩阵。
2.非标准的默认大小255:标准的MATLAB colormap使用当前的colormap大小(非常有用!)
3.在帮助中没有H1线。
4.运行mlint给出了8条代码改进的消息。
5.如果不添加额外的代码,该示例将无法工作。
6.调用慢函数,如“exist”,当“nargin”就足够了。
7.不必要的“for”循环可以被向量化(特别是返回标准的数字色图时)。
8.在"for"循环中没有数组预分配。
9.当简单的第二次输入就足够时,不必要地使用“varargin”。
10.示例显示MATLAB绘图命令的糟糕使用。与下面的代码相比,行数减半:
N = 5;
颜色图(cell2mat(linspecer(N));
X = linspace(0,π* 3,1000);
Y = bsxfun(@(x,n))sin(x+2*n*pi/ n), x。', 1: N);
情节(X, Y,“线宽”,5)