如何在Matlab的带状图中使用颜色表示振幅?

4

Matlab的ribbon函数会将矩阵以彩色条带的形式绘制出来,其中每个条带的数目和条带上的点对应于矩阵中的行和列索引,而条带高度则对应于元素值。每个条带都有自己的颜色。

我正在寻找一个能够创建类似图形的函数,但是其中颜色表示条带的高度,即矩阵中的值,类似于surfwaterfall的功能。(去除黑色轮廓线也很好)。如何实现这一点呢?

matlab ribbons

3个回答

2

ribboncoloredz.m 可以轻松实现此操作。

[x,y] = meshgrid(-3:.5:3,-3:.1:3);
z = peaks(x,y);
ribboncoloredZ(y,z);
xlabel('X');ylabel('Y');zlabel('Z');

example


提交的内容归结为在调用h = ribbon(y,z)之后设置一些属性,即set(h, {'CData'}, get(h,'ZData'), 'FaceColor','interp','MeshStyle','column') - Oleg

0

相同问题,我的解决方法是从内置函数创建自己的函数:

在编辑器中打开“ribbon.m”:编辑 ribbon.m

将其另存为另一个名称,例如 ribbonColAmpl.m,在任何您想要保存的位置。

删除第46行的表面参数“n*cc”,在'parent'之前。这就是控制连接表面固定颜色的内容。

保存文件并使用此新函数代替原始函数:大功告成!


0
原来可以使用waterfall实现相同的效果:
h = waterfall(data);
set( h, 'LineWidth', 4 );
hidden off;

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接