交互式弦图的绘制(R实现)

在弦图绘制方面,除了基础包之外还有ggplot版本的ggraph,这里其实还有交互的和弦图的绘制方法,例如,edgebundleR包,成图效果如下所示:

require(igraph)
ws_graph = watts.strogatz.game(1, 50, 4, 0.05)
edgebundle(ws_graph,tension = 0.1,fontsize = 20)

之前google到一份图,ggplot的图层和设置参数,认为十分完正,可视化出来也是很有创意,这里给大家链接和图片:点击原文但是遗憾的是没有数据,我们没办法进行重现,这几天我自己整理了图层,并重现这张图片,顺便学习这种交互式的和弦图绘制方法,在网络中尤其有用。

ggplot图层和参数绘制

widgetframe包和edgebundleR都在cran中,常规安装即可:

library(igraph)
# install.packages("widgetframe")
library(edgebundleR)
library(dplyr)
library(purrr)
suppressPackageStartupMessages(library(widgetframe))
parameters <- readLines("./geom_aes.csv")
head(parameters)
split_up <- function(x){
  params <- unlist(strsplit(x, ","))
  return(data.frame("from" = params[1], "to" = params[2:length(params)]))
}

relationship <- map_df(parameters, split_up)
head(relationship)
relationship$to = as.character(relationship$to)
knitr::kable(head(sort(table(relationship$to), decreasing = T), n = 10))
knitr::kable(head(sort(table(relationship$from), decreasing = T), n = 10))

frameWidget(edgebundle(graph_from_data_frame(relationship), tension = 0.45, cutoff = 0.1, width = NULL, fontsize = 14,
                       padding = 110, nodesize = c(5, 20), directed = FALSE), height = "600")

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值