Matlab 中的二维线条渐变颜色

Cla*_*net 7 matlab gradient graph colors matlab-figure

是否可以在 Matlab 中为 2-D 线添加渐变颜色,尤其是当您的数据点数量很少(小于 10?)时,结果将类似于下图中的一个?

在此处输入图片说明

Dev*_*-iL 8

如果您有 MATLAB R2014b 或更新版本,这并不难。

n = 100;
x = linspace(-10,10,n); y = x.^2;
p = plot(x,y,'r', 'LineWidth',5);

% modified jet-colormap
cd = [uint8(jet(n)*255) uint8(ones(n,1))].';

drawnow
set(p.Edge, 'ColorBinding','interpolated', 'ColorData',cd)
Run Code Online (Sandbox Code Playgroud)

结果是:

在此处输入图片说明

摘自Undocumented Features - Color-coded 2D line plots with color data in 三维。原作者是thewaywewalk。可以在贡献者页面上找到归因详细信息。源代码在CC BY-SA 3.0下获得许可,可以在文档档案 中找到。参考主题 ID:2383 和示例 ID:7849。


Lui*_*ndo 5

这是一种可能的方法:使用从所需颜色图中获取的不同颜色显式绘制线条的每个段。

x = 1:10; % x data. Assumed to be increasing
y = x.^2; % y data
N = 100; % number of colors. Assumed to be greater than size of x
cmap = parula(N); % colormap, with N colors
linewidth = 1.5; % desired linewidth
xi = x(1)+linspace(0,1,N+1)*x(end); % interpolated x values
yi = interp1(x,y,xi); % interpolated y values
hold on
for n = 1:N
    plot(xi([n n+1]), yi([n n+1]), 'color', cmap(n,:), 'linewidth', linewidth);
end
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述