作者简介

作者:吴健 中国科学院大学 R语言、统计学爱好者,尤其擅长R语言和Arcgis在生态领域的应用分享。个人公众号:统计与编程语言

往期回顾:

R语言绘制条形图

基于ggplot2的网络可视化(1)

本文对公司员工邮件往来数据进行网络可视化分析,从而确定公司中员工的邮件往来情况。该数据集来自于2014 VAST Challenge (Cook et al., 2014) 。

1.加载包:

library(ggplot2)
library(GGally)
library(geomnet)
library(ggnetwork)
library(network)

2.加载数据:

data(email,package=’geomnet’)#该网络数据有55个顶点和4743条边

3.数据整理:

email$edges <- email$edges[, c(1,5,2:4,6:9)]#提取数据

emailnet <- fortify(

as.edgedf(subset(email$edges, nrecipients < 54)),

email$nodes)#构建绘图数据集,排除群发邮件

4.绘制数据

set.seed(10312016)
ggplot(data = emailnet,
aes(from_id = from_id, to_id = to_id)) +
geom_net(layout.alg = “fruchtermanreingold”,
aes(colour = CurrentEmploymentType,
group = CurrentEmploymentType,
linewidth = 3 * (…samegroup.. / 8 + .125)),
ealpha = 0.25, size = 4, curvature = 0.05,
directed = TRUE, arrowsize = 0.5) +
scale_colour_brewer(“Employment Type”, palette = “Set1”) +
theme_net() +
theme(legend.position = “bottom”)

从上图可以看出同一部门邮件往来较为密切,不同部门之间只有个别员工之间存在邮件往来,接下来我们观察一下,这种模式是否随着时间变化而变化。

5.整理数据:

edges <- subset(email$edges, nrecipients < 54)#排除群发邮件

edges <- edges[, c("From", "to", "day") ]#提取指定列

em.net <- network(edges[, 1:2])#构建网络数据

set.edge.attribute(em.net, "day", edges[, 3])

em.cet <- as.character(email$nodes$CurrentEmploymentType)

em.net %v% "curr_empl_type" <- em.cet[ network.vertex.names(em.net) ]

6.绘图:

set.seed(7042016)
ggplot(ggnetwork(em.net, arrow.gap = 0.02, by = “day”,
layout = “kamadakawai”),
aes(x, y, xend = xend, yend = yend)) +
geom_edges(
aes(color = curr_empl_type),
alpha = 0.25,
arrow = arrow(length = unit(5, “pt”), type = “closed”)) +
geom_nodes(aes(color = curr_empl_type), size = 1.5) +
scale_color_brewer(“Employment Type”, palette = “Set1”) +
facet_wrap(~day, nrow = 2, labeller = “label_both”) +
theme_facet(legend.position = “bottom”)

上图可以看出每天员工的邮件往来情况,以便于我们进一步分析。

大家都在看

2017年R语言发展报告(国内)

R语言中文社区历史文章整理(作者篇)

R语言中文社区历史文章整理(类型篇)

公众号后台回复关键字即可学习

回复 R                  R语言快速入门及数据挖掘 
回复 Kaggle案例  Kaggle十大案例精讲(连载中)
回复 文本挖掘      手把手教你做文本挖掘
回复 可视化          R语言可视化在商务场景中的应用 
回复 大数据         大数据系列免费视频教程 
回复 量化投资      张丹教你如何用R语言量化投资 
回复 用户画像      京东大数据,揭秘用户画像
回复 数据挖掘     常用数据挖掘算法原理解释与应用
回复 机器学习     人工智能系列之机器学习与实践
回复 爬虫            R语言爬虫实战案例分享

基于ggplot2网络可视化(二)相关推荐

  1. Network | 高颜值网络可视化工具(一)

    1. 写在前面 本期教程:网络可视化. 应用场景:蛋白互作网络(PPI); ceRNA网络;社交关系图:相关性图等. 需要的文件 :我们在使用network,igraph等包进行网络可视化的时候,一般 ...

  2. 基于ggplot2的解剖图和组织模块可视化

    摘要 将数据显示到解剖结构上,是一种可以快速观察组织相关信息的便捷技术.然而,绘制组织是一项复杂的任务(a complex task),需要解剖学和艺术方面的专业知识.虽然已经存在可用于在解剖图上显示 ...

  3. 【计算机视觉(CV)】基于图像分类网络VGG实现中草药识别(二)

    [计算机视觉(CV)]基于图像分类网络VGG实现中草药识别(二) 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践 ...

  4. R语言使用ggplot2可视化交叉曲线(Curved lines defined with functions):基于自定义函数可视化交叉曲线、使用curve_intersect函数计算曲线交叉点

    R语言使用ggplot2可视化交叉曲线(Curved lines defined with functions):基于自定义函数可视化交叉曲线.使用curve_intersect函数计算曲线交叉点 目 ...

  5. python画多层网络_基于Python的多层网络可视化包Multinetx

    之前记录过基于R语言和Octave的多层网络可视化工具,但安装起来比较麻烦,发现Github上有基于Python的版本,提供了supra-adjency和多关系网络可视化,直接看:https://gi ...

  6. 论文研读-AI4VIS-可视化推荐-VizML: 一种基于机器学习的可视化推荐方法

    VizML: 一种基于机器学习的可视化推荐方法 1 论文概述 1.1 摘要 1.2 引言 2 问题陈述 3 相关工作 3.1 基于规则的可视化推荐系统 3.2 基于机器学习的可视化推荐系统 4 数据 ...

  7. 中国银联基于软件定义网络的下一代金融云研究探索

    一. 研究背景情况 (一) 问题和挑战 银联基于 OpenStack开源技术的金融云平台已运行 5年,目前已达数千台级物理服务器规模,银联互联网.移动支付等关键业务,特别是提供多样化支付服务的全渠道系 ...

  8. 浅析网络可视化分析技术

    [国内外技术研究现状] 基于多层特征的空间信息网络可视化 Luca Rossi 等人最早讨论了多层网络的可视化策略,他们认为虽然有部分学者逐渐集中到多层网络的研究分析上来,但目前还没有针对这一内容提出 ...

  9. BrainNet Viewer:人类大脑连接的网络可视化工具

    BrainNet Viewer:人类大脑连接的网络可视化工具 1 方法 1.1 工具箱的开发 1.1.1 开发环境 1.1.2 可视化程序 1.1.3 文件定义 1.1.4 核心代码 1.2 实验数据 ...

  10. 基于图像分类网络ResNet50_vd实现桃子分类

    基于图像分类网络ResNet50_vd实现桃子分类 随着时代的快速发展,人工智能已经融入我们生活的方方面面.中国的农业也因人工智能而受益进入高速发展阶段.现今,看庄稼长势有卫星遥感技术,水果分拣有智能 ...

最新文章

  1. php怎么批量转码,网站文件批量转码_PHP教程
  2. halcon算子盘点:Chapter 11 :Morphology1
  3. ASP技巧实例:几行代码解决防止表单重复提交
  4. python语句-浅谈 Python 的 with 语句
  5. Ext.form 表单为什么第二次就不正常显示
  6. 100个直接可以拿来用的JavaScript实用功能代码片段
  7. linux相关英文书记,Linux常用软件(英文介绍)
  8. xpath-了解xpath语言-下载xpath_helper工具
  9. View(视图)——对话框之一般对话框
  10. 什么是准静态平坦瑞利衰落信道?
  11. java多个文件加密压缩_java中文件如何加密压缩?
  12. iOS 第三方登录之 微信登录
  13. ssh框架的学习之strut2小测试(2)
  14. 为什么计算机只有安全模式能进系统吗,电脑可以进安全模式但正常系统为什么进不去...
  15. 【HISI系列】海思 IPC hi3516a、hi3519v101 的单包模式和多包模式
  16. 『实用教程』VSPD虚拟串口工具——从此告别硬件串口调试
  17. 编程竞赛_编程竞赛和挑战清单
  18. Unity初级工程师面试指导
  19. 如何编写优质嵌入式C程序
  20. java bnf_Java语言标准BNF

热门文章

  1. “123456”连续七年霸榜,2019最糟糕密码榜单出炉
  2. 程序员锁死服务器导致公司倒闭,案件终于开庭了
  3. 有些人,理他就输了!
  4. 从0开始学习 GitHub 系列之「08.如何发现优秀的开源项目」
  5. Linux文本编辑器-vi/vim
  6. 如何去掉ArrayList重复的id
  7. 20165320 第七周学习总结
  8. 设计模式--代理模式Proxy(结构型)
  9. Failed to create the java virtual machine完全解决办法
  10. 关于: 为什么要写注释----谈一下个人体会