You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于指定数据框绘制带聚类效果的关联网络图技术问询

R语言绘制带聚类的关联网络图

步骤1:加载依赖包

确保安装并加载igraph包(绘制网络图的核心工具):

# 首次运行需安装包
install.packages("igraph")
# 加载包
library(igraph)

步骤2:构建图对象

将数据框转换为igraph图结构,把value设为边的权重(值越高,节点关联越强,布局时会更靠近):

# 定义数据框
df <- data.frame(char1=c('a', 'd', 'i', 'k', 'm', 'd', 'e', 'e', 'q', 'i','q', 'm','n','i'), 
                 char2=c('b','a','a','g','n','b', 'o', 'g', 'p', 'b','g','b','k','d'),
                 value=c(0.8,0.6,0.6,0.5,0.5,0.4,0.3,0.2,0.1,0.1,0.4,-0.1,-0.2,-0.3))

# 转换为无向图对象,设置边权重
graph <- graph_from_data_frame(df, directed = FALSE)
E(graph)$weight <- df$value

步骤3:检测强关联聚类

用快速贪心算法识别节点的社区结构,自动划分强关联节点组:

# 执行社区检测(基于边权重)
community <- fastgreedy.community(graph, weights = E(graph)$weight)
# 为每个节点标记所属社区
V(graph)$community <- membership(community)

步骤4:绘制网络图

通过参数设置实现需求:

  • 布局采用权重驱动的Fruchterman-Reingold算法,高关联节点自动靠近
  • 节点颜色区分社区,直观展示聚类
  • 边的粗细对应关联值大小
plot(community, graph,
     layout = layout_with_fr(graph, weights = E(graph)$weight), # 权重决定节点距离
     edge.width = E(graph)$value * 5, # 关联值越高边越粗
     vertex.size = 20, # 节点大小
     vertex.label.cex = 1.2, # 标签字号
     vertex.color = scales::hue_pal()(max(V(graph)$community)), # 社区颜色区分
     edge.alpha = 0.7, # 边透明度
     main = "关联网络图(强关联节点聚类展示)")

效果说明

  • 高关联节点对(如a-b、a-d、d-b)会因权重高紧密聚集,形成明显聚类
  • 不同颜色代表不同社区,清晰区分强关联分组
  • 边的粗细直接反映关联值强弱,粗边对应高关联

内容的提问来源于stack exchange,提问作者user21390049

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 00:02:33