2011-12-19 342 views
6

我有一个2D空间,其中定义了一个函数值(你可以把它看作是一个流形)。现在我使用contourf绘制函数值,并将颜色映射更改为比喷射柔和的颜色。目前看起来相当不错。如何改变matlab绘图的线条颜色(如colormap)?

现在我想绘制一条线,代表我的空间随着时间的推移状态。这也可以使用plot命令。但是我想要进一步改进:现在隐藏一个额外的状态(值为0 ... 50)。我希望线条颜色根据这个隐藏状态改变。因此,从某种意义上来说,将单独的颜色映射应用到plot绘制的线上,例如在瀑布图中。

这是(或类似的)可能使用matlab?

感谢

回答

2

看一看到从文件交换cline.m功能,我想这是你所需要的东西。

+0

这将做你想做的,假设你想要平坦的阴影。这也不漂亮。 – Nzbuu 2011-12-19 10:12:17

7

如果要使用插值着色或使颜色图随颜色变化,则要将数据绘制为网格并适当设置edgecolor属性。请注意,为了将其绘制为网格,您需要复制它,以使其在每个方向上的大小至少为2。

h = mesh([X(:) X(:)], [Y(:) Y(:)], [Z(:) Z(:)], [C(:) C(:)], ... 
    'EdgeColor', 'interp', 'FaceColor', 'none'); 

您可能也想看看MeshStyle属性,如果你想同时绘制多行。

该解决方案也比cline中使用的解决方案好得多,因为它只创建一个图形对象,而不是n

+0

我不确定,如果我正确理解你。我认为'mesh'命令会产生3D图。我希望它在2D中(从上面开始计算)。我为Z坐标设置了什么值? – 2011-12-19 12:42:07

+1

设置Z坐标为0,并使用'view(2)'旋转回标准XY视点。 – Nzbuu 2011-12-19 14:16:56

+0

此外,由@Adrian链接到的功能恰好实现了这一点。 – Nzbuu 2011-12-19 14:19:22

2

我可以推荐从文件交换Colored line entry。它具有良好的反馈,并使用颜色映射来定义显示的颜色,我已在多个项目中成功使用它。

+0

正如@Nzbuu所提到的,这比[cline.m]漂亮(http://www.mathworks.com/matlabcentral/fileexchange/3747-cline-m),正是因为它使用了一条连续的曲线(通过['mesh '](http://www.mathworks.com/help/matlab/ref/mesh.html))而不是['line'](http://www.mathworks.com/help/matlab/ref/line。 HTML)。如果你的生产线上有很多点,这也会使它更有效率。 – 2014-05-09 03:37:58