首页 >> 大全

【MATLAB】 Graph Object(3): 展示关系网

2024-01-11 大全 37 作者:考证青年

于是我们取出这462位关注者,建立子图。在中可以很方便的用功能从图中剥离出子图。

realFollower = subsG.findnode(ids);
followerGraph = subgraph(subsG,realFollower)
followerGraph = digraph with properties:Edges: [990×1 table]Nodes: [462×3 table]hsub = plot(followerGraph,'layout','force')

现在再来看看这462位关注者之间的关系,是不是比之前的清晰很多?

然而我们还可以做的更好。

我们的数据是多维的,比如每个关注者有自己的粉丝,如何在一个2维的图上显示出这个信息呢?

我们可以用每个节点的大小来代表他/她的粉丝数

hsub.MarkerSize = log(str2double(followerGraph.Nodes.Weight)+1.1)*2;

看起来不错,如果同时把节点的颜色变成他/她的粉丝数呢?

hsub.NodeCData=str2double(followerGraph.Nodes.Weight);

瞬间变的清晰明了了有没有?突出一个大V

然而myc很快的意识到,粉丝数的多少对于专栏来说并没有什么大用。倒是一个关注者在专栏内有多少个其他关注者粉丝是个很有意思的数据。我们用图的入度来表示一个节点有多少个粉丝。

_matlab绘制关系图_matlab绘制关系曲线

hsub.NodeCData=indegree(followerGraph);

我们可以看到,之前的大V节点在专栏内其实并不是有最多“朋友”的。当然本来粉丝就少的关注者在专栏内也不会有很多粉丝。

我们来看看到底是谁在专栏内有最多的关注者。我们进入模式。点击最黄的那个节点

hd = datacursormode;

在专栏内有93个粉丝哟,几乎占了462人的20%。很大程度上可以说有20%的人都是因为他/她而关注专栏的。

但是默认的给出的信息太生肉了,还带着那个不是给人看的id。我们来写一个自己的显示的方式

hd.UpdateFcn = @(obj,event_obj) GraphCursorCallback(obj,event_obj,followerGraph);

在回调函数中,显示当前节点的名字,粉丝数,和专栏中的粉丝数

function output_txt = GraphCursorCallback(obj,event_obj,g)
% Display the position of the data cursor
% obj          Currently not used (empty)
% event_obj    Handle to event object
% output_txt   Data cursor text (character vector or cell array of character vectors).h = get(event_obj,'Target');
pos = get(event_obj,'Position');
ind = find(h.XData == pos(1) & h.YData == pos(2), 1);output_txt = {g.Nodes.uName{ind},['Follower ',g.Nodes.Weight{ind}],['Friend in subscriber ',num2str(indegree(g,ind))]};
end

再点击那个节点看看,原来是

@李崇

,他自己有1000+的粉丝,在专栏中有93个粉丝,说明他粉丝中至少10%的人是和他在上有交集的(大概

的类还提供了方便的高亮功能,比如我们想看我们的第一位关注者

@Yu Jiang

老师在专栏中的粉丝图。

s= findedge(followerGraph,predecessors(followerGraph,1),1);
hsub.highlight(followerGrap
h.Edges.EndNodes(s,1),followerGraph.Edges.EndNodes(s,2),'EdgeColor','r');

红线连起来的就是

@Yu Jiang

老师魔爪伸向的地方……

有了Graph类方便的可视化系统,我们就可以利用做一些很有趣的事情

比如查看我们的专栏是如何一步步走到今天的。还记得我们在这篇文章里面建立的关注者追踪系统吗?

我们可以通过 来获取专栏关注的实时人数,并把他们的关系图画出来。

下面就展示了一个非常简单的动画效果

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了