我在matlab中有一個鄰接矩陣。我如何繪製圖表?由於我有> 500個節點,因此我不能使用隨機(或網格狀)座標的gplot。從matlab中的鄰接矩陣創建圖
回答
因此,假如你有bioinformatics toolbox,該biograph
功能是完美的,你想要做什麼。
這是我在過去所做的那樣:
假設from
和to
都包含關於兩個向量的到從系統中的節點。然後,您可以創建鄰接矩陣是這樣的:
Sys = sparse(from,to,1,s,s);
Adj_mat = tril(Sys + Sys');
我假設你已經有你的鄰接矩陣adj_mat
,在這種情況下,所有你需要做的是:
bg = biograph(Adj_mat,[],'ShowArrows','off','ShowWeights','off');
h = view(bg);
我增加了一些論點只是爲了說明一些可能性。我想要箭頭,跳過那部分。
節點將根據「最低能量」標準默認放置,這意味着「分支交叉點」的數量被最小化。佈局可以更改,例如添加'LayoutType','Radial'
。
查看documentation瞭解更多信息。
這是我之前使用biograph創建的示例。使邊緣平直很簡單,或者爲分支分配不同的顏色和重量。另外,您可以爲節點創建不同的名稱,或者刪除名稱,只需要有一個「點」。
編輯
的回答爲文森特的問題的意見:
我以前set(edges,'LineWidth',1.5)
來設定邊緣的權重。查看一些額外的文檔和示例here。
%% Color affected lines:
set(h.nodes(nn),'Color',[0.2 0.8 0.2]);
fowEdges = getedgesbynodeid(h,get(h.Nodes(nn),'ID'));
revEdges = getedgesbynodeid(h,get(h.Nodes(fliplr(nn)),'ID'));
edges = [fowEdges;revEdges];
set(edges,'LineColor',[0.2 0.8 0.2])
set(edges,'LineWidth',1.5)
%% 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)
我知道該線程已經很久了,但是您是如何管理「粗線」的 - 沒有看到文檔中的特定條目... – AnatraIlDuck
@Vincent,檢查更新。我相信這是我用來創建上圖的代碼的一部分。 –
謝謝羅伯特! – AnatraIlDuck
- 1. 從JUNG圖創建鄰接矩陣
- 2. 從python中的矩陣創建鄰接列表圖表
- 3. 如何從鄰接矩陣MATLAB
- 4. 如何從鄰接矩陣中創建無向圖?
- 5. 的R - 構建鄰接矩陣基於其它鄰接矩陣
- 6. igraph創建加權鄰接矩陣
- 7. 創建重量鄰接矩陣
- 8. 如何從R中的距離矩陣創建一個鄰接矩陣?
- 9. 從matlab中給出的歐幾里得距離矩陣的鄰接矩陣
- 10. 鄰接矩陣
- 11. 從Matlab中的矩陣構建地圖
- 12. 鄰接矩陣圖實現
- 13. 從Matlab中現有的2d矩陣創建3d矩陣
- 14. 從MATLAB中的矩陣和矢量創建三維矩陣
- 15. 如何從鄰接矩陣建立鄰接表?
- 16. MATLAB - 用子矩陣創建矩陣
- 17. Neo4j中圖的鄰接矩陣
- 18. matlab將鄰接矩陣轉換爲鄰接表
- 19. 從MATLAB矩陣陣列創建對角線矩陣
- 20. 如何從Excel電子表格創建鄰接矩陣?
- 21. 從char [] []提供規則創建鄰接矩陣
- 22. 如何從輸入創建一個鄰接矩陣?
- 23. 如何從郵政編碼創建一個鄰接矩陣
- 24. MATLAB:從循環值創建矩陣?
- 25. 從列表中鄰接矩陣
- 26. R根據data.frame中的列創建鄰接矩陣
- 27. 鄰接矩陣VS鄰接表排序
- 28. 漸變圖像的鄰接矩陣
- 29. 圖的鄰接矩陣實現
- 30. 使用鄰接列表和鄰接矩陣的圖的大小?
您是否擁有生物信息學工具箱? –
你的意思是計算生物學?是! – Mikayel