前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >geomnet | 这样惊艳的网络图一键搞定,真好用...

geomnet | 这样惊艳的网络图一键搞定,真好用...

作者头像
DataCharm
发布2024-04-11 20:20:31
1341
发布2024-04-11 20:20:31
举报

前言

我们的数据可视化课程已经上线啦!!目前课程的主要方向是 科研、统计、地理相关的学术性图形绘制方法,后续也会增加商务插图、机器学等、数据分析等方面的课程。课程免费新增,这点绝对良心!

我们第一个数据可视化交流圈子也已经上线了,主要以我的第一本书籍《科研论文配图绘制指南-基于Python》为基础进行拓展,提供「课堂式」教学视频,还有更多拓展内容,可视化技巧远超书籍本身,书籍修正和新增都会分享到圈子里面~~

参与课程或者圈子的你将获取到:学员答疑、可视化资源分享、可视化技巧补充、可视化业务代做(学员和甲方对接)、副业交流、提升认知等等。

「geomnet」-高效绘制网络结构图~~

今天在查找资料的时候,发现了一个绘制网络结构图特别简单的可视化工具-「geomnet」,下面就简单介绍一下这个工具~

  • geomnet包介绍
    • geomnet是一个建立在最新的 ggplot2 主要版本之上的软件包。
    • 它提供了一个名为geom_net() 的 ggplot2 geom,用于可视化图形和网络。
    • 它还包含了stat_net() 函数,用于使用sna软件包计算网络布局。
    • 最后,它还提供了geom_circle() 函数,用于使用 ggplot2绘制圆形。
  • geomnet包安装

直接使用devtools方法安装最新版本的geomnet,如下:

代码语言:javascript
复制
devtools::install_github("sctyner/geomnet")

  • geomnet包可视化案例
代码语言:javascript
复制
library(dplyr)
library(geomnet)
data(theme_elements)
# data step
TEnet <- fortify(as.edgedf(theme_elements$edges[,c("parent", "child")]), theme_elements$vertices)
# create a degree variable for use later
TEnet <- TEnet %>%
  group_by(from_id) %>%
  mutate(degree = sqrt(10 * n() + 1))
# plot
ggplot(data = TEnet,
       aes(from_id = from_id, to_id = to_id)) +
  geom_net(layout.alg = "fruchtermanreingold",
    aes(fontsize = degree), directed = TRUE,
    labelon = TRUE, size = 1, labelcolour = 'black',
    ecolour = "grey70", arrowsize = 0.5,
    linewidth = 0.5, repel = TRUE) +
  theme_net() +
  xlim(c(-0.05, 1.05))

geom_net()函数案例

代码语言:javascript
复制
library(geomnet)
data(blood)
ggplot(data = blood$edges, aes(from_id = from, to_id = to)) +
  geom_net(colour = "darkred", layout.alg = "circle", labelon = TRUE,
           size = 15, directed = TRUE, vjust = 0.5, labelcolour = "grey80",
           arrowsize = 1.5, linewidth = 0.5, arrowgap = 0.05,
           selfloops = TRUE, ecolour = "grey40") +
  theme_net()

geom_net()函数案例

还可以分面绘制网络结构图:

分面绘制案例01

代码语言:javascript
复制

ggplot(data = emailnet, aes(from_id = from, to_id = to_id)) +
  geom_net(aes(colour= CurrentEmploymentType), linewidth=0.5, fiteach=FALSE) +
  scale_colour_brewer(palette="Set2") +
  facet_wrap(~day, nrow=2) + theme(legend.position="bottom")

分面绘制案例02

代码语言:javascript
复制

data(football)
ftnet <- fortify(as.edgedf(football$edges), football$vertices)

p <- ggplot(data=ftnet, aes(from_id=from_id, to_id=to_id))
p + geom_net(aes(colour=value), linewidth=0.75, size=4.5, ecolour="grey80") +
  scale_colour_brewer("Conference", palette="Paired") + theme_net() +
  theme(legend.position="bottom")

geom_net()可视化案例

更多关于geomnet包的语法和可视化案例,可参考:geomnet包官网[1]

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataCharm 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 「geomnet」-高效绘制网络结构图~~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档