EDA365电子论坛网
标题:
请教如何画四维图(4D-plot)
[打印本页]
作者:
Hello_Mr.li
时间:
2021-6-9 09:53
标题:
请教如何画四维图(4D-plot)
: @! e9 x% v( ~
想用matlab建一个地下地质体模型,大致是一个长方体。这个长方体由很多个单位立方体组成,并且每个单元都有一个数值,用颜色显示数值的大小,数值都是非负数,0值显示无色,即这个单元不显示。
a" K# ^6 R/ e8 c
也就是在matlab里可以用什么方法画这样的四维图,变量为[x,y,z,v],[x,y,z]确定小单元的位置,v表示大小并用颜色显示,0值是无色(这个若不好处理显示一种背景色也可以)。
6 P; X$ T! \' f, X* O8 R
我用了slice试一下,但没达到想要的效果(理想的模型,就像魔方从上表面第一层第二层拿掉几个小方块)。 求指点!
$ M' ~# g& Z% Z
%用切片函数构出长方体
[x,y,z]=meshgrid(-1:.1:1,-1:.1:1,-3:.1:3);
%画图范围
v=x.*exp(-x.^2-y.^2-z.^2);
%计算函数值
slice(x,y,z,v,[],[],-2:.01:2,'linear');
axis([-3 3 -3 3 -3 3]);
shading flat
% A8 [, x0 ]4 ]2 A) _
6 V% h2 `! ]4 t2 S7 d
作者:
ExxNEN
时间:
2021-6-9 10:49
下面不是有代码了吗
作者:
SsaaM7
时间:
2021-6-9 13:35
你这个要求有点厉害了啊
作者:
haidaowang
时间:
2021-6-9 13:58
7 R6 t* g) \! p* Q; L/ I2 U
因为slice画图的时候,默认的 EdgeColor 是黑色,所以,尽管你将颜色数据设置为了NAN, 仍会显示黑色的edge。下面的设置去掉了edge颜色。另外,为了便于观察,调整了一下视角:
! ?/ d8 |! z. e4 m4 g
[x,y,z] = meshgrid(0:.5:10,0:.5:10,0:.5:10);
c = x.^2+y.^2+z.^2;
xs = 0:0.5:10;
ys = xs;
zs = xs;
c(7:15,7:15,13:21)=NaN;
h = slice(x,y,z,c,xs,ys,zs);
set(h,'FaceColor','interp',...
'EdgeColor','none')
camproj perspective
box on
view(-70,70)
colormap hsv
colorbar
w' h' Z8 Q( ^1 s. Y1 `% C
' z; }( t! K3 g" C0 z8 A8 u/ j
效果如下:
! V0 r0 U. u. Q
1.png
(54.01 KB, 下载次数: 9)
下载附件
保存到相册
2021-6-9 13:58 上传
# z( D% {5 _/ P1 U! q6 u1 C
( d& _# ~$ d5 u3 W8 M$ c8 i7 |8 b
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2