我想用一个曲面图来可视化4个散乱的数据向量3个向量应该是坐标另外,第四个向量应该表示一个表面颜色。
我的第一个方法是使用

scatHand = scatter3(xk,yk,zk,'*');
set(scatHand, 'CData', ck);
caxis([min(ck), max(ck)])

结果我得到了不同颜色的分散点由于这些点位于一个半球的表面上,因此有可能得到彩色的面,而不仅仅是点我用GRIDDATA替换一个表面的散乱点,首先建立一个近似值
xk2=sort(unique(xk));
yk2=sort(unique(yk));
[xxk, yyk]=meshgrid(xk2, yk2);
zzk=griddata(xk,yk,zk,xxk,yyk,'cubic');
cck=griddata(xk,yk,clr,xxk,yyk,'cubic');
surf(xxk,yyk,zzk,cck);
shading flat;

这已经差不多是我想要的了,只是大脑半球的底部参差不齐当然,如果我增加插值点的数目,它会变得更好,但比处理绘图也会变慢所以我想知道是否有一种简单的方法来强制插值函数做一个明确的中断此外,不规则的边界似乎是因为zzk的值在半球与z=0平面共享的圆之外得到“NaN”。
顶部的红色点是原始散乱数据的前几个条目。

最佳答案

您可以设置ZLim选项在特定范围内分割绘制的值。

set(gca, 'Zlim', [min_value max_value])

关于matlab - 改善散点图的可视化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25791214/

10-09 17:12