[英]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.