繁体   English   中英

如何在Matlab中绘制连接/邻接矩阵图?

[英]How to graph a connectivity/adjacency matrix in Matlab?

我想在MATLAB中绘制网络(电网)的结构图。 我有一个列表,其中包含每个分支的“至”节点。 我没有节点的坐标,并且每次仿真的系统拓扑都会更改。

我还需要能够为不同的线/节点分配不同的颜色,以可视化电压问题或过载等,类似于我使用传记(下面的代码)所做的。

BIOGRAPH功能几乎是完美的。 缺点是这些行总是从祖先块的“底部”出来,并进入后代的“顶部”。 由于祖先始终显示在其后代上方,因此有时图非常混乱(对于大型系统)。

我尝试将传记的属性“ LayoutType”从默认的“分层”更改为“径向”和“平衡”,但这会导致更糟糕的结果。

我要问的可能吗? 它并不需要是一个完美的解决方案,任何改进都会很棒。

这是我现在使用的代码:

%% Plot biograph
Sys = sparse(from,to,1,s,s);  

SysTri = tril(Sys + Sys'); 
bg = biograph(SysTri,[],'ShowArrows','off','ShowWeights','off');
h = view(bg);  

 %% Color faulted line:
set(h.nodes(newFaultNodes),'Color',[1 0.4 0.4]);
fowEdges = getedgesbynodeid(h,get(h.Nodes(newFaultNodes),'ID'));
revEdges = getedgesbynodeid(h,get(h.Nodes(fliplr(newFaultNodes)),'ID'));
edges = [fowEdges;revEdges];
set(edges,'LineColor',[1 0 0])
set(edges,'LineWidth',2)

试用matlab-bgl 它链接到Boost Graph库,并包括一些有用的布局算法。 然后,您可以使用gplot进行可视化。

gplot(A, fruchterman_reingold_force_directed_layout(A));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM