问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

社会网络分析方法+R实战(自学笔记3)

发布网友 发布时间:2024-10-01 10:52

我来回答

1个回答

热心网友 时间:2024-11-24 21:37

社会网络分析——网络可视化与美化

作为社会科学家,我们希望讲述关于所研究网络结构和动态的生动故事。可视化和统计是传达这些故事的主要工具。

本教程将教授如何调整网络可视化的美学。在可视化网络时,我们可以调整多个元素。首先,可以改变节点的颜色、大小、形状和标签。其次,可以调整颜色、宽度、曲率和边缘的外观。可以突出显示网络中不同组的位置。

让我们从调整基本的可视化开始。

首先,加载我们在前一篇教程中创建的数据,并将其绘制成网络。下面的代码应该看起来很熟悉。

唯一区别是,我将money_edgelist转换为一个矩阵,与将其绘制为edgelist的图形在同一行中。这称为嵌套函数。可以嵌套的函数数量没有*,但通常情况下,如果将它们分解成多行会更容易阅读。

可视化网络就像输入plot(moneyNetwork)一样简单。但是默认plot出来的网络图特别丑。我们可以调整plot的设置,使结果的可视化更美观。对于igraph plot()函数有许多设置,我们将介绍开始自己制作体面的可视化所需的最低限度设置。

我们可以改变的最基本的东西是节点的大小和颜色。当网络很大时,节点通常会显得太大并且聚集在一起。参数vertex.Size允许您调整节点的大小(顶点是图论中表示节点的术语!)

这是在igraph中更改plot函数设置的基本方法——在网络对象的旁边加上一个逗号,键入想要更改的设置的名称,并将其设置为一个新值。这里我们设置vertex.Size为10。当您不更改任何设置时,R将自动使用默认设置。你可以在该函数的帮助部分找到它们(即输入?plot)

节点有一个难看的浅橙色,我们可以使用vertex.Color将它们的颜色变成更好的颜色。我们还可以通过将vertex.frame.color设置为NA来删除难看的黑色帧。

你可以在R中找到所有命名颜色的列表:stat.columbia.e/~tzhe...

标签太大,而且是蓝色的。我们可以用vertex.label.cex调整标签的大小。我们可以用vertex.label.color来调整颜色。

或者,如果我们想去掉标签,我们可以设置vertex.label到NA。

最后,我们可以使边缘更小和弯曲,给他们更好的美感

但设置不要太过了。如果你设置了edge.curved>1时,它看起来就像面。

网络可视化的一个重要部分是它的布局,它决定了节点在图中的位置。社交网络分析已经开发出了各种各样的布局。它们都试图最小化交叉的边的数量,但使用不同的算法来实现这一目标。一般来说,我使用Kamada Kawai算法或Fruchterman Reingold算法。

Igraph有一组布局函数,当传递一个网络对象时,这些函数返回一个坐标数组,然后可以在绘制该网络时使用。这些坐标应该保存到单独的R对象中,然后在plot函数中调用该对象。它们都有格式:layout DOT算法名。例如,layout.kamada.kawai()或layout.fruchterman.reingold()

Kamada Kawai

Frucherman-Reingold

你可以查看?layout_获得更多选项和细节。

我们可以任意影响这些美学。例如,你可能更喜欢网络边缘是弯曲的而不是直线的样子。然而,我们经常根据我们的经验背景的理论来做决定。如果我们认为种族对网络结构很重要,我们可以根据种族给节点着色。如果我们认为种族和性别都很重要,我们可以根据种族给节点上色,根据性别改变节点的形状。我们也可以根据财富大小来确定节点的大小。我们通常被*一次可视化节点的三个属性(使用颜色、形状和大小),尽管我发现任何超过两个(颜色和大小)的东西都很难解释。

接下来,为了可视化属性是如何分布在网络节点上的,大多数网络项目需要两个独立的数据集。除了创建和加载一个关系数据集(我们在前一篇教程中介绍过)之外,我们还需要第二个数据集来详细描述参与者的属性,我们需要将数据添加到网络中。决定哪些属性是相关的将取决于领域和你的研究问题;如果你在研究芝加哥南部的帮派,你可能会记录演员的帮派成员和住所;如果你对沙特精英之间的商业关系感兴趣,你可能会记录下他们的年龄和血统。

让我们回到Excel,为我们的网络构建一个属性数据集。这种数据集要传统得多:每一行是一个人(或者称为观察结果),每一列符合您为这个人测量的某些属性。这是我为我的家庭货币供应网络制作的一个示例属性数据集的图片。

Hoffman family attributes 家族属性

我将这个属性数据集作为.csv文件保存在我的R目录中。我将把它加载到R中,就像我在前一个教程中对edgelist做的那样(所有这些都应该是练习和熟悉的!)如果没有,请重新阅读前一篇教程)。

这为我们提供了一个data.frame,其中每一行对应一个人,每一列对应网络中人的一个属性,但要在igraph中使用这些属性,我们必须将它们分配给igraph对象(即moneyNetwork)中的节点。

图中的属性分别分配给节点和边。正如在前一篇教程中提到的,顶点是使用V()函数访问的,而边是使用E()函数访问的。然后使用后跟属性名称的美元符号操作符访问属性。例如,如前所述,V(countrysideNetwork)$name将告诉我们网络中所有节点的名称。要更改一个属性,只需使用等号将其设置为其他值。举个例子,这里我改变了网络中节点的名称:

目前,我们的网络除了名称之外没有任何属性。如果我们试图查看节点的性别,结果将是NULL。

因此,我们需要将属性文件中的属性附加到网络中。这样做的方法可能有点复杂。如果我们有一个边缘列表,我们可以使用_from_data_frame()函数而不是graph.edgelist(),并包括属性文件作为顶点参数。不管出于什么原因,在本例中,边列表需要是data.frame,所以不需要将其转换为矩阵。另外,重要的是要注意,igraph假设第一列是名称列,所以要确保情况是这样的!

现在,如果我们看一下我们的网络,我们会看到在attr旁边有更多的。

我们可以用V()$函数查看每一个。例如,这是性别。

在上一节中,我们将属性数据导入到网络对象中,这将允许我们根据节点属性操作网络。让我们从根据性别来处理颜色开始.

为了做到这一点,我们必须根据人们的性别给他们分配颜色。我们使用ifelse函数。ifelse()函数接受三个参数。第一个是测试(计算结果为TRUE或FALSE的东西),第二个是如果测试为TRUE返回什么,第三个是如果测试为FALSE返回什么。

因此,我们设置了一个ifelse函数,它测试一个节点的性别是否为男性,如果为TRUE(即它们是男性),则为其分配颜色为“蓝色”,如果为FALSE(即否则/它们是女性),则为“绿色”。记住,R是区分大小写的,所以如果你的性别变量包含“Male”和“Female”,那么确保你在ifelse语句中放入Male或Female(大写)。

现在我们可以重新绘制网络。这一次,节点的颜色将是绿色或蓝色,这取决于它们的性别。注意,我没有设置vertex.因为这样做将覆盖我们刚刚给节点的颜色。

现在让我们试试role。首先,我重置颜色。有四种角色(Father, Mother, Son, Daughter),因此我们需要更多的ifelse语句来为所有这些角色编码。

最后但并非最不重要的是,让我们调整节点的大小,以便它们反映年龄的差异。我们可以用下面的代码将节点大小设置为节点年龄的1/5。简单,但有效。看起来最老的节点给了最多的人。

over!撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 数学题一部儿童电视剧匙长358分钟分9集播放每集大约播放多长时间_百度... 未拆封的安卓手机第一次开机是不是一定会出现安卓机器人? 在金六福买千足金戒大概多少钱?会不会有假 我于2010年在邮政银行存款陆万元定期五年到时.利息应得多少 我在邮政存了70000定期5年,5年后利息是多少,.那个基本保险金额又是什... ...邮政储蓄银行存了50000元人民币,存得是五年定期的整存整取。请问我... 干竹笋怎么做好吃m 电脑桌面--已经打开的窗口,最小化就看不见了.不会在任务样显示_百度知 ... Docker 这九个不同的应用场景,你都用到了吗? ...屏幕卡住,最小化的时候,一半显示桌面一半不动! ...中间总是出现一块区域卡住不动,要点一下显示桌面才会消失!这是怎么... word怎么微调对齐word如何微调 word首行缩进怎么设置文档正文间距在哪里设置 如何调整word格式如何调整word格式对齐 word里面如何让文字左对齐,并保持文本缩进? 遗嘱不公正有法律效应吗? 民法典规定遗嘱必须公证才有法定效力吗 反物质是什么东西什么是反物质 反物质是什么概念 在KTV里面上班应该注意哪些问题 湫秃舃cd-271tmcn多少钱 罕见!英渔民捕获长3.6米巨型鲶鱼 鲶鱼王鲶鱼简介 皮带长了怎么剪?哪里可以专业剪短皮带? 什么情况下需要给皮带剪短?哪里可以给皮带剪短? Coach皮带长了可以怎么剪短呢? BRD 文件是什么软件打开 “梅姨案"申聪父亲向人贩子索赔480万,申聪父亲究竟失去了什么?_百度... “梅姨案"申军良向人贩子索赔480余万,是否会追求其养父母的责任? 停播才一年多,《快本》5主持的差距拉大:有人失宠,有人更红了 申聪案寻子父亲向人贩子索赔480万,该起案件背后哪些人性问题值得反思... ...现在变成了数据,好麻烦啊,如何变成图片啊。 牛排怎么炖汤有山味不 煲牛排汤放什么好怎么煲 昨天晚上做梦,刚开始一直梦见自己在捡钱,后来就梦见自己去参加一个朋友... 此时凳子横杆一定会断吗? 索尼微单a6000 和a5100到底哪个好,好纠结啊,刚买了a6000,出了a5100... 必须戒掉4个敷面膜坏习不然会变老 佳能G1X Mark II和黑卡3和g7x哪个好 这些坏习惯一定要戒掉!