【问题标题】:Matlab 3D plot with connections between nodesMatlab 3D绘图与节点之间的连接
【发布时间】:2014-08-22 17:40:35
【问题描述】:

我已经生成了图表。问题是我不知道如何在图中的点之间创建连接。

鉴于我已经有了:

id=[1;2;3;...];
x=[x1;x2;x3;...];
y=[y1;y2;y3;...];
z=[z1;z2;z3;...];
connect_a=[id1;id2;id3;...];
connect_b=[id1';id2';id3';...];
scatter3(x,y,z,10,z);

connect_a 和 connect_b 中的所有数字都是 id 号,我想在它们之间建立连接。例如 id1 应该连接到 id1'。

我应该如何解决这个问题?

【问题讨论】:

标签: matlab 3d


【解决方案1】:

我不会给出一个完整的通用答案,因为你没有表现出任何努力。但这里有一个例子,你一般如何做到这一点。

只需在plot3 之间画一些 3D 线。

示例

%\\ my marker points 
A = CCD;   
x1 = A(:,1);
x2 = A(:,2);
x3 = A(:,3);

%\\ line style definition
style = {'color', 'black','LineStyle','-.','linewidth' ,1.5}

hf = figure(1);

%\\ connecting lines
plot3(x1,x2,x3,'.k', 'MarkerSize',25); hold on 
plot3([1 1 1 1 1],[-1 1 1 -1 -1],[1 1 -1 -1 1],style{:}); hold on
plot3([0 0 0 0 0],[-1 1 1 -1 -1],[1 1 -1 -1 1],style{:}); hold on
plot3([-1 1 1 -1 -1],[0 0 0 0 0],[1 1 -1 -1 1],style{:}); hold on
plot3([-1 1 1 -1 -1],[1 1 -1 -1 1],[0 0 0 0 0],style{:}); hold on
plot3([-1 -1 -1 -1 -1],[-1 1 1 -1 -1],[1 1 -1 -1 1],style{:}); hold on
plot3([1 -1],[-1 -1],[1 1],style{:}); hold on
plot3([1 -1],[-1 -1],[-1 -1],style{:}); hold on
plot3([1 -1],[1 1],[1 1],style{:}); hold on
plot3([1 -1],[1 1],[-1 -1],style{:}); hold on

%\\ some axes
plot3([-2 2],[0 0],[0,0],'color', 'black','linewidth' ,1); hold on
plot3([0 0],[-4 4],[0,0],'color', 'black','linewidth' ,1); hold on
plot3([0 0],[0 0],[-1.8 1.8],'color', 'black','linewidth' ,1); hold on
view(30,10)

%\\ some other axes limits and so on...
axis equal; grid on; hold off
set(gca,'xlim',[-1.682, 1.682],'XTick',[-1,0,1],'ylim',[-1.682, 1.682],'YTick',[-1,0,1],'zlim',[-1.682, 1.682],'ZTick',[-1,0,1]);

当然,您需要将所有1 替换为您的ID。但我认为你可以做到这一点。

现在将所有plot3 命令放在一个循环中并动态执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 2019-02-18
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多