【问题标题】:Creating graph from adjacency matrix in matlab在matlab中从邻接矩阵创建图
【发布时间】:2013-10-19 05:57:42
【问题描述】:

我在 matlab 中有一个邻接矩阵。我如何绘制它的图形?由于我有 >500 个节点,我不能使用带有随机(或类似网格)坐标的 gplot。

【问题讨论】:

  • 你有生物信息学工具箱吗?
  • 你是说计算生物学?!是的!

标签: matlab graph adjacency-matrix


【解决方案1】:

所以假设你有bioinformatics toolboxbiograph 函数非常适合你想做的事情。

这是我过去所做的:

假设fromto 是两个向量,包含有关系统中to-from 节点的信息。然后你可以这样创建你的邻接矩阵:

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 创建的一个示例。使边缘笔直或为分支分配不同的颜色和权重很简单。此外,您可以为节点创建不同的名称,或者删除名称并在那里只使用一个“点”。

编辑

作为对文森特在 cmets 中问题的回答:

我使用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)

【讨论】:

  • 我知道线程已经很旧了,但是您是如何管理“粗”行的 - 还没有看到文档中的特定条目......
  • @Vincent,检查更新。我相信这是我用来创建上图的部分代码。
  • @Vincent,还可以查看this link 中的示例。
  • 再次感谢!只需要再深入一点……
【解决方案2】:

查看此功能:gplot

例子:

% Plot half of a "Bucky ball" carbon molecule, placing asterisks at each node:
k = 1:30;
[B,XY] = bucky;
gplot(B(k,k),XY(k,:),'-*')
axis square

【讨论】:

  • 感谢您的回复。但是,我该如何选择坐标呢?
  • gplot(A,Coordinates) 根据 n×n 邻接矩阵 A 绘制 Coordinates 中定义的节点的图形,其中 n 是节点数。 Coordinates 是一个 n×2 矩阵,其中 n 是节点数,每个坐标对代表一个节点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
相关资源
最近更新 更多