2013-05-01 261 views
2

我想在MATLAB中绘制网络(电网)的结构。我有一个列表,其中包含每个分支的to-from节点。我没有节点的坐标,并且系统拓扑对于每个模拟都会发生变化。如何绘制Matlab中的连通性/邻接矩阵?

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

BIOGRAPH功能几乎完美。缺点是线条始终走出祖先块的“底部”,并进入后裔的“顶部”。作为祖先始终显示在其后代之上,图表有时非常混乱(对于大型系统)。

我已经尝试将默认的'等级'的传记属性'LayoutType'更改为'radial'和'equilibrium',但是这会产生更糟糕的结果。

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

这是我现在使用的代码:

%% 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) 
+0

你可以尝试[grphviz4matlab(http://code.google.com/p/graphviz4matlab/) – Oleg 2013-05-01 14:43:10

+0

它看起来像grphvis4matlab能很好地工作。问题是我无法让它工作。我已经安装graphviz-2.30.1,并试图按照网站上的描述。 Matlab函数可以工作,但是他们找不到graphviz程序。我收到如下消息: 'neato'不被识别为内部或外部命令, 可操作程序或批处理文件。请安装或升级graphViz。 我相信我有正确的文件夹中的文件,我试图重新安装graphViz。 无论如何=) – 2013-05-02 15:24:21

+0

看看[这个问题](http://stackoverflow.com/questions/11037499/visualize-a-graph-in-matlab) – Tokkot 2013-05-06 13:26:59

回答

0

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

gplot(A, fruchterman_reingold_force_directed_layout(A));