如何在Matlab中使用第三个变量创建颜色渐变?

the*_*guy 5 matlab matlab-figure

如何在Matlab中创建颜色渐变,以便绘制y = y(x)的2D线图,并使用另一个依赖于x的变量对其进行着色,使得z = z(x).我也可以使用散点图或点图.

我还希望有一个色彩图传奇类似于显示颜色渐变的东西,它是z的实际表示.这种东西在VisIt和ParaView等可视化工具中非常普遍,但我还没有在Matlab中弄清楚它.

EBH*_*EBH 5

如果散点图很好,您可以使用第四个输入scatter

x = -10:0.01:10;
y = sinc(x);
z = sin(x);
scatter(x,y,[],z,'fill')
Run Code Online (Sandbox Code Playgroud)

z颜色在哪里。

在此处输入图片说明


Cec*_*lia 3

要连续操纵线条的颜色,您需要使用surface.

虽然乍一看,此函数看起来对于绘制 3D 曲面最有用,但它比基本plot函数为线条着色提供了更大的灵活性。我们可以使用网格的边缘来绘制线条,并利用顶点颜色C来沿边缘渲染插值颜色。

您可以查看渲染属性的完整列表,但您最可能需要的是

  1. 'FaceColor', 'none', 不绘制脸部
  2. 'EdgeColor', 'interp', 在顶点之间插值

这是改编自MATLAB Answers 帖子的示例

x = 0:.05:2*pi;
y = sin(x);
z = zeros(size(x)); % We don't need a z-coordinate since we are plotting a 2d function
C = cos(x);  % This is the color, vary with x in this case.
surface([x;x],[y;y],[z;z],[C;C],...
        'FaceColor','none',...
        'EdgeColor','interp');
Run Code Online (Sandbox Code Playgroud)

示例生成的图像