【问题标题】:How to graph a connectivity/adjacency matrix in Matlab?如何在 Matlab 中绘制连通性/邻接矩阵?
【发布时间】:2013-05-01 08:54:39
【问题描述】:

我想在 MATLAB 中绘制网络(电网)的结构。我有一个包含每个分支的 to-from 节点的列表。我没有节点的坐标,每次模拟时系统拓扑都会发生变化。

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

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)

【问题讨论】:

  • 你可以试试grphviz4matlab
  • 看起来 grphvis4matlab 可以很好地工作。问题是我无法让它工作。我已经安装了 graphviz-2.30.1,并尝试按照网站上的描述进行操作。 Matlab 函数有效,但他们找不到 graphviz 程序。我收到如下消息:“neato”未被识别为内部或外部命令、可运行程序或批处理文件。请安装或升级 graphViz。我相信我的文件位于正确的文件夹中,并且我已尝试重新安装 graphViz。无论如何谢谢=)
  • @user1666357:迟到的回复:我之前看过gplot函数。我的问题是我没有任何坐标。

标签: matlab graph plot adjacency-matrix


【解决方案1】:

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

gplot(A, fruchterman_reingold_force_directed_layout(A));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多