用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)
输出
准备好图表数据
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
输出
准备树状图
现在,我们将使用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
输出