EDA365电子论坛网
标题:
问个三维散点图的投影问题
[打印本页]
作者:
replace
时间:
2023-1-12 11:17
标题:
问个三维散点图的投影问题
目的是想将三维散点投影到X-Y平面,三维点和其对应投影点之间用实线或虚线相连,
4 e+ y# k/ L' r+ c: d% X5 v" Z8 [* q
最好是虚线相连。现在能找的出X-Y平面上的投影点,但虚线相连实现不了,求指教。
+ G t* g- I% ?
非常感谢!
4 ~" @: w0 z( w
# A# S/ D: x7 l3 ^. {) j5 y* n
相关数据如下:
/ ]; W/ O3 _1 O: k- }5 ~; x |0 [
clear
* R( C- _: l8 |4 z- W a
close all
" m* E# Z+ ^6 S$ u- s
x=3+randn(100,1);
) A2 F& E3 @* y: t2 D6 s
y=2+randn(100,1);
+ Z/ J1 f8 l' [/ v2 x& L7 M
z=5+randn(100,1);
3 y O: k5 z: o1 S* p% I
scatter3(x,y,z)
) H1 i7 u: W0 d, X5 s
xlabel('X')
c0 U5 Z ?0 R1 P8 N8 ~
ylabel('Y')
7 \, P0 O9 { d! R( g- j
zlabel('Z')
5 d9 E2 w: l! g; L. ?5 `9 Y U$ u
hold on
. d0 O' ?0 I6 K/ N F! T U
scatter3(x,y,zeros(length(x),1))
- c# z4 L/ ~" J/ [0 R% M
hold off
2 A4 g4 V2 G9 o$ Z( J2 k
作者:
qian211111
时间:
2023-1-12 13:12
plot3命令应该可以做到吧?你可以查查帮助
作者:
someone
时间:
2023-1-12 13:21
你没有写画虚线的语句,当然画不出了
/ g/ [/ m; L1 x: m
clear,clc
! `" [- b% m& `5 B
close all
. ~( O' P7 _1 I0 Z& K1 `
6 t% B5 B. ?* Z; `, p3 t# H$ i+ W
x = 3+randn(30,1);
' W" @& j; ^1 B0 M( h4 p
y = 2+randn(30,1);
' e* f/ J' D4 y$ J4 E5 b/ I
z = 5+randn(30,1);
0 G' H$ l: V# q
p = {'linestyle','none','marker','o'};
- c5 V( f9 @4 h* Z8 W" R# A
line(x,y,z,p{:});
9 e% g9 z: f3 D: r2 {
line(x,y,0*z,p{:},'color','g');
1 D4 Y" C; B! k' s+ W
line([x x]',[y y]',[z 0*z]','linestyle','--','color','k')
) J1 R3 Y, z, f
xlabel('X')
9 U/ _, b" \+ W T! N
ylabel('Y')
: O' _" D& a* j! i
zlabel('Z')
2 A( e6 U0 ^- L v7 [
grid on
$ d- z1 c+ y# E
view(-30,50)
作者:
li205212021
时间:
2023-1-12 13:29
个人觉得这里plot3函数还是要酌情使用
$ s) k: F- {$ G) \3 I7 z
close all
/ G% @/ ~5 j* p2 G* W
clear,clc
/ y9 Z: Z* [1 _9 Q6 w5 I+ N- i6 S
8 J' V1 {/ L* s* o5 V) Q" E; l
x = rand(100,1);
& P2 v+ N; E+ N. X( c
y = rand(100,1);
2 n1 e' |' a& g; }$ X3 z
z = rand(100,1);
5 D- v6 \% |: B7 T! r8 a* l
7 I: v' t1 X5 E% M. t7 }6 V; {' ~
tic, for idx=1:100, cla; plot3([x x]',[y y]',[z 0*z]','-.'); end; toc;
# `/ f4 C+ S, @6 g, O5 ?
tic, for idx=1:100, cla; line([x x]',[y y]',[z 0*z]','linestyle','-.'); end; toc;
7 t, |" Z8 |" }& S+ B9 R4 J6 s+ t g
+ D3 W" t( ^" c0 _
Elapsed time is 4.888176 seconds.
' t6 A4 G6 P' ^7 H
Elapsed time is 2.246748 seconds.
1 f; X+ n- P& @& N
可以看出plot3因为是个比较高级的函数所以效率不如line函数
' c) G* L/ r5 _3 ^2 @9 K! s ?
而且plot3还需要hold on/off
) E8 u, H8 N9 b& K" v, P- K/ v
所以多数情况(小部分情况,例如你要刷新什么的和一些其他较少见的情况plot更加适合)下line是比plot3/plot更好的选择
3 E3 h! q$ j) f6 X
" ^3 w9 x! K" L2 |7 b
另外对于scatter/scatter3,l在点数较少(不多于100个)的情况下line也有不错的效率优势
3 U6 b Y* c8 S8 O" u$ c' t( O/ e
但是如果对每个点有不同的要求(例如不同大小)或者其他特殊情形下(例如点较多),还是用专门做散点的scatter/scatter3较好
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2