用 R 和 ggraph 介绍树形图
在本文中,我们将了解如何使用 R Programming 使用 ggraph 库来可视化树图。 ggraph 库有很多方法可以帮助在 R 编程语言中进行可视化。
可视化树状图
树状图是项目之间层次关系的直观表示。它通常是由于层次聚类而产生的。树状图的主要目的是找出将对象分配给集群的最佳方法。
准备分层数据
在这里,我们将准备分层数据进行演示。为此,我们将创建两个数据框,然后我们将创建边缘数据。
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
# prepare the graph data
mygraph <- graph_from_data_frame( edges )
mygraph
R
# plotting the dendrogram
ggraph(mygraph, layout = 'dendrogram') +
geom_edge_diagonal() + # putting up the edges
geom_node_point() # add up the data points
输出:
准备图表数据
graph_from_data_frame() 方法从一个或两个数据帧创建 igraph 图,其描述已从 igraph 包中获得。
Syntax: graph_from_data_frame(d, directed = TRUE)
Parameters:
- d : Dataframe
- directed: Logical scalar
R
# prepare the graph data
mygraph <- graph_from_data_frame( edges )
mygraph
输出:
准备树状图
现在,我们将使用 ggraph 库绘制树状图。为此,我们将使用带有layout = 'dendrogram'的 ggraph 的树状图布局, geom_edge_diagonal()用于边缘, geom_node_point()用于数据点
Syntax: ggraph(graph, layout)
Parameters:
- graph: graph Object
- layout: Layout type instring, a function, a matrix, or a data.frame
R
# plotting the dendrogram
ggraph(mygraph, layout = 'dendrogram') +
geom_edge_diagonal() + # putting up the edges
geom_node_point() # add up the data points
输出: