用R和ggraph绘制树形图的介绍

用R和ggraph绘制树形图的介绍

在这篇文章中,我们将看到如何用R编程的ggraph库将树状图可视化。ggraph库有一堆方法来帮助R编程语言的可视化。

树状图的可视化

树状图是项目之间层次关系的可视化表示。它最常作为分层聚类的结果产生。树状图的主要目的是为了找出将对象分配到聚类的最佳方法。

准备分层数据

在这里,我们要为演示准备分层数据。为此,我们将创建两个数据框架,然后我们将创建边缘数据。

# libraries for plotting the graph
library(ggraph) 
library(igraph)
library(tidyverse)
library(ggplot2)
  
# create the edge data for the hierarchy
d1 <- data.frame(from = "origin", 
                 to = paste("group",
                            seq(1,5),
                            sep = ""))
print("Dataframe 1 :")
head(d1)
  
# preparing the subgroup data
d2 <- data.frame(from = rep(d1$to, each = 5), 
                 to = paste("subgroup", 
                            seq(1,25),
                            sep="_"))
  
print("Dataframe 2 :")
head(d2)
  
# creating the edge data
edges <- rbind(d1, d2)
  
print("Edge of both dataframe:")
head(edges)

输出

用R和ggraph绘制树形图的介绍

准备好图表数据

graph_from_data_frame()方法从一个或两个数据帧中创建igraph图,其描述已从igraph包中获得。

语法: graph_from_data_frame(d, directed = TRUE)

参数

  • d: 数据帧
  • directed: 逻辑标量
# prepare the graph data
mygraph <- graph_from_data_frame( edges )
mygraph

输出

用R和ggraph绘制树形图的介绍

准备树状图

现在,我们将使用ggraph库绘制树状图。为此,我们将使用 ggraph 的 layout = ‘dendrogram ‘ 的树状图 布局geom_edge_diagonal() 用于绘制边缘, geom_node_point() 用于数据点。

语法: ggraph(graph, layout)

参数

  • graph: 图形对象
  • layout: 布局类型实例,一个函数,一个矩阵,或一个数据框架
# plotting the dendrogram
ggraph(mygraph, layout = 'dendrogram') + 
  geom_edge_diagonal() + # putting up the edges
  geom_node_point() # add up the data points

输出

用R和ggraph绘制树形图的介绍

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程