基于ggplot2网络可视化(二)
作者:吴健 中国科学院大学 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网络可视化(二)相关推荐
- Network | 高颜值网络可视化工具(一)
1. 写在前面 本期教程:网络可视化. 应用场景:蛋白互作网络(PPI); ceRNA网络;社交关系图:相关性图等. 需要的文件 :我们在使用network,igraph等包进行网络可视化的时候,一般 ...
- 基于ggplot2的解剖图和组织模块可视化
摘要 将数据显示到解剖结构上,是一种可以快速观察组织相关信息的便捷技术.然而,绘制组织是一项复杂的任务(a complex task),需要解剖学和艺术方面的专业知识.虽然已经存在可用于在解剖图上显示 ...
- 【计算机视觉(CV)】基于图像分类网络VGG实现中草药识别(二)
[计算机视觉(CV)]基于图像分类网络VGG实现中草药识别(二) 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践 ...
- R语言使用ggplot2可视化交叉曲线(Curved lines defined with functions):基于自定义函数可视化交叉曲线、使用curve_intersect函数计算曲线交叉点
R语言使用ggplot2可视化交叉曲线(Curved lines defined with functions):基于自定义函数可视化交叉曲线.使用curve_intersect函数计算曲线交叉点 目 ...
- python画多层网络_基于Python的多层网络可视化包Multinetx
之前记录过基于R语言和Octave的多层网络可视化工具,但安装起来比较麻烦,发现Github上有基于Python的版本,提供了supra-adjency和多关系网络可视化,直接看:https://gi ...
- 论文研读-AI4VIS-可视化推荐-VizML: 一种基于机器学习的可视化推荐方法
VizML: 一种基于机器学习的可视化推荐方法 1 论文概述 1.1 摘要 1.2 引言 2 问题陈述 3 相关工作 3.1 基于规则的可视化推荐系统 3.2 基于机器学习的可视化推荐系统 4 数据 ...
- 中国银联基于软件定义网络的下一代金融云研究探索
一. 研究背景情况 (一) 问题和挑战 银联基于 OpenStack开源技术的金融云平台已运行 5年,目前已达数千台级物理服务器规模,银联互联网.移动支付等关键业务,特别是提供多样化支付服务的全渠道系 ...
- 浅析网络可视化分析技术
[国内外技术研究现状] 基于多层特征的空间信息网络可视化 Luca Rossi 等人最早讨论了多层网络的可视化策略,他们认为虽然有部分学者逐渐集中到多层网络的研究分析上来,但目前还没有针对这一内容提出 ...
- BrainNet Viewer:人类大脑连接的网络可视化工具
BrainNet Viewer:人类大脑连接的网络可视化工具 1 方法 1.1 工具箱的开发 1.1.1 开发环境 1.1.2 可视化程序 1.1.3 文件定义 1.1.4 核心代码 1.2 实验数据 ...
- 基于图像分类网络ResNet50_vd实现桃子分类
基于图像分类网络ResNet50_vd实现桃子分类 随着时代的快速发展,人工智能已经融入我们生活的方方面面.中国的农业也因人工智能而受益进入高速发展阶段.现今,看庄稼长势有卫星遥感技术,水果分拣有智能 ...
最新文章
- php怎么批量转码,网站文件批量转码_PHP教程
- halcon算子盘点:Chapter 11 :Morphology1
- ASP技巧实例:几行代码解决防止表单重复提交
- python语句-浅谈 Python 的 with 语句
- Ext.form 表单为什么第二次就不正常显示
- 100个直接可以拿来用的JavaScript实用功能代码片段
- linux相关英文书记,Linux常用软件(英文介绍)
- xpath-了解xpath语言-下载xpath_helper工具
- View(视图)——对话框之一般对话框
- 什么是准静态平坦瑞利衰落信道?
- java多个文件加密压缩_java中文件如何加密压缩?
- iOS 第三方登录之 微信登录
- ssh框架的学习之strut2小测试(2)
- 为什么计算机只有安全模式能进系统吗,电脑可以进安全模式但正常系统为什么进不去...
- 【HISI系列】海思 IPC hi3516a、hi3519v101 的单包模式和多包模式
- 『实用教程』VSPD虚拟串口工具——从此告别硬件串口调试
- 编程竞赛_编程竞赛和挑战清单
- Unity初级工程师面试指导
- 如何编写优质嵌入式C程序
- java bnf_Java语言标准BNF