默认的MATLAB默认线条规范和COLORMAPS是惊人的原油。该函数通过在*感知*空间中间隔〜平等来创建可区分的颜色,而不是在RGB空间中。它是基于辛西亚啤酒教授(Colorbrewer!)的研究,但易于使用。
这个函数创建了一个N [R B G]颜色的Nx3数组
这些可以用来绘制许多具有可区分和好看的颜色的线。
线型= linspecer (N);让N种颜色供你使用:
colormap (linspecer);设置您的颜色地图,以容易区分的颜色和令人愉快的审美
线型= linspecer (N,“定性”);强制所有的颜色都是可分辨的(最多12种)
linestyles = linspecer(n,'顺序');迫使颜色沿频谱变化
_______________________________________________
展示颜色的例子。
%线颜色
n = 6;
x = linspace(0,pi * 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.1]);
%更简单的线条颜色示例
n = 6;x = linspace(0,pi * 3,1000);
C = linspecer (N)
推迟;
2 = 1: N
y = sin(x + 2 * ii * pi / n);
情节(X, Y,“颜色”,C (ii):),“线宽”,3);
抓住;
结尾
% COLORMAP例子
a = rand(15);
图;显示亮度图像(一);%默认colormap
图;显示亮度图像(一);colormap (linspecer);% linspecer colormap
_______________________________________________
积分和函数的来源:
这些颜色主要来自:
http://colorbrewer2.org和辛西娅啤酒,马克哈尔斯和宾夕法尼亚州立大学
她从心理测量学的角度研究了这一点,并精心制作了颜色
非常漂亮。
我做了很多选择来决定在Matlab中绘制直线的最好方法。我还对其中一种我认为有点太亮的颜色做了一个小改动。此外,对顺序行样式进行了一些插值。文件中包含一个apache风格的软件许可。
Jonathan C. Lansey(2021年)。美丽和可分辨的线条颜色+彩图(//www.tatmou.com/matlabcentral/fileexchange/42673-beautiful-and-distinguishable-line-colors-colormap), MATLAB中央文件交换。检索。
启发:par那最大明显的颜色生成器那CubeHelix色彩地图生成器:美丽和多才多艺!那ColorBrewer:吸引和独特的彩色地图那Matlab 2048那rgb2hex和hex2rgb那Matplotlib感知均匀的Colormaps那高效的2D直方图,无需工具箱那Hyperplot工具
非常感谢。这是如此容易使用<3
非常感谢!
好的结果,易于使用。
功能强大(谢谢)。但为什么没有附带次要情节呢?
有什么关于斯蒂芬提到的许可证问题的事情?
谢谢你的帮助。
非常感谢。你的功能改进了我即将发表的论文中数字的颜色。
谢谢你的代码,它真的有助于我在我的论文工作中改进我的照片
谢谢你的好功能!
伟大的!
感谢您分享此文件!
非常好,美丽!
有用的
优秀的
太棒了!
易于使用,谢谢你!
奇妙的函数,在MATLAB R2014a和R2014b中工作得很好。谢谢你!
我喜欢它,很酷
在许可证上撒谎是一件狡猾的事情。
虽然作者写入“Apache样式软件许可证包含在文件中”实际上,此下载中的任何位置都没有提到Apache许可证。提供的许可实际上是BSD许可证,Matlab文件交换支持的唯一一个。金宝app
此提交打破了Cynthia Brewer的ColorBrewer配色方案的许可条件,该条件要求包括她的APACHE许可:
http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html
请注意,此功能会破坏原作者的版权,因为它不包括版权声明本身:
http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html
非常有用的。如果接近黄色的颜色再深一些就更好了。
感谢您共享此文件,非常有用!
这已经是我的标准彩色线地图一段时间了。然而,我经常改变黄线的颜色——在白色背景上,黄线离光太远了,难以被很好地识别。
感谢这个伟大的功能。这使得图形更好,更方便。
谢谢每个人的评论,我很欣赏他们。
还要谢谢斯蒂芬的建议。
让人印象深刻。将它设置为默认值
这可能是作者的兴趣,如果他们希望改进这个提交的代码:
//www.tatmou.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”,而不是慢速“存在”。
7.“for”循环仍然用于完成基本的算术运算。这是由于数据存储在单元格数组中。如果数据只是简单地存储在数字数组中,那么所有这些“for”循环都可以被删除。
8.现在在for循环之前预分配单元格数组。
9.不必要地使用“varargin”,因为第二个简单的论点就足够了。
10.改进的例子。
11.仍然没有“另见”链接到相关功能:“Colormap”,“Plot”,“Jet”,“HSV”,“RGBPLOT”,...
12.ColorBrewer数据无需Apache许可即可分发:
http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html
大多数要点已经解决,提交基本上做了它说的。然而,代码的质量很差。特别是使用单元格数组来存储数字数据需要多个本地函数来执行基本的数字运算。MATLAB的名字来源于“矩阵实验室”:它被设计用于对数字矩阵进行数字运算,速度快!在单元格数组中存储数据并使用多个“for”循环来实现基本的数值功能是对MATLAB的糟糕使用,因此,该提交比提供该功能所需的更大、更复杂。
两颗星用于将MATLAB用户介绍给更好的ColorMaps而不是“JET”和“HSV”。
漂亮,添加这个作为默认的颜色映射到我的启动。不再有伤害的眼睛。谢谢!
阅读这篇文章后,很好的颜色参考:http://eagereyes.org/basics/rainbow-color-map
它是美丽的。谢谢你!
多么漂亮的彩色地图——我的新默认值。谢谢!
非常感谢!
谢谢你的反馈,斯蒂芬。我已经在周末更新了功能,包括了几乎所有你的建议。我希望它能很快被Mathworks批准。
修复上面的示例:通过设置“ColorOrder”Axes属性,可以使用带有多线图的ColorMap:
N = 5;
轴(‘NextPlot’,‘replacechildren’,‘ColorOrder’,cell2mat (linspecer (N)))
x = linspace(0,pi * 3,1000);
Y = bsxfun(@(x,n))sin(x+2*n*pi/ n), x。', 1: N);
甘氨胆酸的阴谋(X, Y,“线宽”,5)
11.m文件的帮助部分应该包括“参见……”,以连接到相似和相关的功能。
12.分发ColorBrewer方案需要包括原始Apache版权许可证的副本。
我一直在寻找更好的寻找,可区分的ColorMAP,以替换标准的ColorMaps,首先是这个文件似乎提供的。但是,这不是替代Colormap中的下降,M-File具有多个缺点,从而损害了这个想法:
1.非标准的细胞阵列输出:所有标准的MATLAB彩色地图返回一个Nx3数字矩阵。
2.非标准默认大小为255:标准MATLAB ColorMAPS使用当前的Colormap大小(非常有用!)。
3.在帮助中没有H1线。
4.运行mlint给出了8条代码改进的消息。
5.如果不添加额外的代码,该示例将无法工作。
6.调用慢函数,如“exist”,当“nargin”就足够了。
7.不必要的“for”循环可以被矢量化(特别是如果返回标准数字Colormap)。
8.“”为“循环中没有阵列预配。
9.当简单的第二次输入就足够时,不必要使用“varargin”。
10.示例显示了MATLAB PLOT命令的使用差。与下面的代码进行比较,分为一半的行数:
N = 5;
colormap (cell2mat (linspecer (N)));
x = linspace(0,pi * 3,1000);
Y = bsxfun(@(x,n))sin(x+2*n*pi/ n), x。', 1: N);
情节(X, Y,“线宽”,5)