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

使用ggraph绘制二部网络时如何自定义节点样式与轴标签

解决方案

首先确保你已加载所需依赖包:

library(ggraph)
library(tidygraph)

你可以直接使用下方调整后的代码实现需求:

# 先将邻接矩阵转为tidygraph对象方便处理节点属性
graph <- as_tbl_graph(check, directed = FALSE) %>% 
  mutate(type = ifelse(name %in% colnames(check), TRUE, FALSE)) # 标记上下部分节点

ggraph(graph, layout = "bipartite") + 
  geom_edge_link0(aes(edge_width = weight), edge_colour = "grey66") +
  # 自定义节点样式:按type映射颜色和形状
  geom_node_point(aes(shape = type, color = type), size = 5) +
  scale_shape_manual(values = c("FALSE" = 16, "TRUE" = 15)) + # 16是圆形,15是正方形
  scale_color_manual(values = c("FALSE" = "#238b45", "TRUE" = "#2382b2")) + # 下绿上蓝
  # 上下双x轴分别对应两组标签
  scale_x_continuous(
    breaks = 1:nrow(check), 
    labels = rownames(check),
    sec.axis = sec_axis(
      trans = ~.,
      breaks = 1:ncol(check),
      labels = colnames(check)
    )
  ) +
  # 可选调整:隐藏不必要的图例、美化主题
  theme_minimal() +
  theme(
    legend.position = "none",
    axis.text.y = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  )

代码说明

  • 节点样式自定义:通过type字段区分上下两组节点,分别映射形状和颜色参数,手动指定对应值即可实现上蓝正方形、下绿圆形的效果。
  • 双x轴标签设置:用scale_x_continuous的主x轴设置下方行标签,次x轴(sec_axis)设置上方列标签,直接对应两组节点的x坐标位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 19:51:04