图片缩略图

美丽和可区分的线条颜色+ colormap

版本1.4.0.0(8.25 KB)通过 乔纳森C. Lansey
用非常可分辨的和美观的颜色绘制许多线条。适用于“N”颜色

346下载

更新2015年9月16日

查看许可协议

默认的Matlab默认线规范和颜色图是非常粗糙的。该函数通过在*感知*空间中(而不是在RGB空间中)间隔颜色来创建可区分的颜色。它是基于辛西娅·布鲁尔教授(颜色布鲁尔!)的研究,但惊人地易于使用。
该函数创建的N [R B G]的颜色的NX3阵列
这些可用于绘制大量的可区分和好看的颜色线。
lineStyles = linspecer(N);使N种颜色供您使用:lineStyles(二,:)
colormap (linspecer);设置你的颜色图有容易区分的颜色和令人愉快的审美
lineStyles = 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.1]);

%简单的线颜色的例子
N = 6;X = linspace(0,π* 3,1000);
C = linspecer (N)
推迟;
2 = 1:N
Y = sin (X + 2 * 2 *π/ N);
情节(X, Y,“颜色”,C (ii):),“线宽”,3);
坚持,稍等;
结束

% COLORMAP例子
一个=兰德(15);
图;显示亮度图像(一);%默认颜色映射
图;显示亮度图像(一);colormap (linspecer);% linspecer colormap

_______________________________________________

信用和在功能来自:

颜色主要取自:
http://colorbrewer2.org还有Cynthia Brewer, Mark Harrower和宾夕法尼亚州立大学
她从心理测量学的角度研究了这一点,并精心设计了颜色
精美。

我做了很多选择来决定在Matlab中绘制直线的最佳方法。我还对其中一种颜色做了一点小小的改动,我觉得它太亮了。此外,一些插值正在进行的顺序线样式。文件中包含一个apache风格的软件许可证。

引用作为

乔纳森·c·兰西(2020)。美丽和可区分的线条颜色+ colormap(//www.tianjin-qmedu.com/matlabcentral/fileexchange/42673-beautiful-and-distinguishable-line-colors-colormap),MATLAB中央文件交换。检索

意见及评级(71)

岩岩堂

非常感谢。你的函数改善了我即将发表的论文中人物的颜色。

秋道

玉坤张

谢谢你的代码,它真的帮助我改善我的图片在我的论文工作

太棒了!

谢详解

本产品B

ZhiH

谢谢分享这个文件!

Hanghang马

陈Yingqi

非常好,非常漂亮!

lei赵

KAE

有用

你媳

他何

Procat

优秀的

太棒了!

使用方便,谢谢!

T罗基特

剑康

雷李

DF

神奇的功能,在MATLAB R2014a和R2014b的伟大工程。谢谢!

DF

基诺Delfe

BreezyWest

Fannymost

我喜欢它,非常酷

minzhen李

静温

谎称牌照是做偷偷摸摸的事。

尽管作者写道“文件中包含APACHE风格的软件许可”,但实际上在本文的下载部分完全没有提到APACHE许可。所提供的许可证实际上是BSD许可证,MATLAB文件交换只支持BSD许可证。万博1manbetx

此提交违反了Cynthia Brewer的ColorBrewer配色方案的许可条件,该配色方案要求将Cynthia的APACHE许可证包括在内:

http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html

程joylin

程joylin

杰米

上海欧

请注意,这个功能破坏了原作者的版权,因为它不包括版权通知本身:

http://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html

燕江

非常有用的。如果接近黄色的颜色更暗一些就更好了。

VeraM

谢谢分享这个文件,非常有用!

杰夫·刘

这一直是我的了,而线的标准颜色表。不过,我经常彻底地改变了黄线的颜色 - 这是远光是在白色背景上地辨认。

“国丰

感谢这个伟大的功能。这使得图形更好更方便。

谢谢大家的好评,我非常感谢。
也感谢Stephen的建议。

丹尼

让人印象深刻。把它设置为我的默认值

这可能会感兴趣的作者,如果他们想提高本次提交的代码:
//www.tianjin-qmedu.com/help/matlab/matlab_prog/vectorization.html

在作者对我的最后评论所作的修改之后,我想我将再次审查这一提交。就我先前提出的相同观点:
1.函数现在返回一个MATLAB标准的N*3数字颜色图。
2.默认大小现在是64,这仍然不匹配MATLAB的colormap函数的默认值。
3.现在有一个H1线(虽然也许是单词“颜色表”应包括在这一行?)。
4. mlint消息已经参加过(在MATLAB R2012b)。
5.例子是现在已经完成!
6.现在叫“nargin”,而不是慢的“exist”。
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用户介绍了比“jet”和“hsv”更好的色彩映射。

安妮Urai

美丽,加入这个作为默认颜色映射到我的startup.m来 - 不要再伤害眼睛。谢谢!

g ^ w ^

看完这篇文章后颜色大参考:http://eagereyes.org/basics/rainbow-color-map

g ^ w ^

g ^ w ^

很美丽。谢谢!

多么美丽的colormap--我的新的默认。谢谢!

陆莉

谢谢!

乔纳森C. Lansey

谢谢你的反馈,Stephen。我在周末更新了这个功能,几乎包括了你所有的建议。我希望它能很快得到Mathworks的批准。

修正上面的例子:可以通过设置“ColorOrder”轴属性来使用带有多线图的colormap:

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-file帮助部分应该包括一个'See also…行,以链接到类似的和相关的函数。
12.分发colorbrewer方案需要包括一份原始Apache版权许可的副本。

我一直在寻找更好看,可区分的颜色映射来取代标准的,这在一开始似乎提供了这个文件。然而,这并不是替换colormap的一个下降,而且M-file有多个缺点,这与这个想法背道而驰:
1.非标准单元阵列输出:所有标准MATLAB色彩映射表返回一个NX3数字矩阵。
2.非标准默认大小255:标准的MATLAB颜色映射使用当前颜色映射大小(非常有用!)
3.在帮助中没有H1行。
4.运行mlint给出了8条用于改进代码的消息。
5.如果不添加额外的代码,该示例将无法工作。
6.当“nargin”足够时,调用像“exist”这样的慢函数。
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)

更新

1.4.0.0

基本色盲支持多达4种颜色。万博1manbetx使用参数“色盲”

1.4.0.0

小的改变连续输出

1.3.0.0

调整基于斯蒂芬Cobeldick的优秀建议的功能。

1.1.0.0

我把大写N的颜色调暗了一点。也使演示更清晰。

MATLAB版本兼容性
创建R2010b
兼容任何版本
平台的兼容性
视窗 苹果系统 Linux