ggraph快速绘制相关性网络图
2023-02-18 16:35:33 时间
❝本节来介绍如何使用「ggraph」包来绘制相关性网络图,非常简单的一个小案例;
加载R包
library(tidyverse)
library(widyr)
library(ggraph)
library(tidytext)
library(RColorBrewer)
导入数据
df<- read_csv("data.csv")
数据清洗
❝使用「str_to_lower」将字符转换为小写,[:punct:]将标点符号移除 ❞
p <- df %>%
mutate(tags = str_to_lower(str_remove_all(tags, "[:punct:]"))) %>%
select(name,tags) %>%
separate_rows(tags, sep = " ") %>%
count(name,tags) %>%
filter(n > 3) %>%
pairwise_cor(tags, name, n) # 计算相关性
扩展调色板
❝由于需要用到的颜色较多因此使用「colorRampPalette」函数来扩展调色板 ❞
mycolors <- colorRampPalette(brewer.pal(8, "Set1"))(20)
绘制网络图
p %>% ggraph(layout = "fr")+
geom_edge_link(aes(color = correlation > 0, width = correlation), alpha = 0.6)+
geom_node_point(size=5,aes(color=name)) +
geom_node_text(aes(label = name),color="black",
hjust = 0.5, vjust = 0.5,
check_overlap = T, size=4)+
scale_color_manual(values = mycolors) +
scale_edge_width_continuous(range = c(1,2)) +
scale_edge_color_brewer(palette = "Paired")+
theme_void() +
theme(plot.margin = margin(0,1,0,0,"cm"))+
guides(color = "none")
相关文章
- Java对象拷贝原理剖析及最佳实践
- JavaFx出现错误Caused by: java.lang.NullPointerException: Location is required的解决方法
- Java 学习笔记 Junit4单元测试使用
- Java 学习笔记 网络编程 使用Socket传输文件 CS模式
- Java 学习笔记 使用并发包ReentrantLock简化生产者消费者模式代码
- Java 学习笔记 使用synchronized实现生产者消费者模式
- Java 学习笔记 观察者模式与适配者模式 监控文件夹
- Java 学习笔记 线程控制
- java学习笔记 线程的实现与同步
- Java 学习笔记 泛型
- Java 学习笔记 反射与迭代器
- Java 学习笔记 正则表达式
- Java 学习笔记 执行外部命令 包装类 枚举类型
- Java 学习笔记 判断一个数组是否有序
- Java 学习笔记 IO流与File操作
- Java小工具 根据文本批量修改文件名
- Java学习笔记 抽象类 接口 多态
- Java Scanner nextLine方法跳过
- Java 学习笔记 两大集合框架Map和Collection
- Java学习笔记——i++与++i问题