2013-05-01 55 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));