R 使用 dataframe 中的 circlize 制作圆弦图

作者:编程家 分类: ruby 时间:2025-10-22

使用R中的circlize包可以制作漂亮的圆/弦图,圆/弦图是一种可视化数据的方法,可以展示数据之间的关系和比例。本文将介绍如何使用circlize包制作圆/弦图,并通过一个实例来演示其用法。

准备数据

首先,我们需要准备一些数据来制作圆/弦图。我们将使用一个包含不同类别和其对应比例的数据框。假设我们有一个数据框df,其中包含三个类别A、B和C,以及它们所占的比例。

R

# 创建数据框

df <- data.frame(

category = c("A", "B", "C"),

proportion = c(0.3, 0.4, 0.3)

)

制作圆/弦图

接下来,我们可以使用circlize包中的circos.plot函数来制作圆/弦图。circos.plot函数需要两个参数,一个是数据框df,另一个是颜色向量,用于指定每个类别的颜色。

R

# 安装circlize包

install.packages("circlize")

# 加载circlize包

library(circlize)

# 指定颜色向量

colors <- c("red", "green", "blue")

# 制作圆/弦图

circos.plot(df, col = colors)

运行以上代码,我们就可以得到一个简单的圆/弦图,其中每个类别由一个扇形表示,类别之间的比例由扇形的大小来体现。颜色向量colors指定了每个类别的颜色。

自定义圆/弦图

我们还可以通过自定义圆/弦图的参数来使其更加美观和易读。circlize包提供了许多可调整的参数,例如扇形的宽度、字体大小、标签位置等。

R

# 自定义圆/弦图

circos.par("track.height" = 0.4) # 设置扇形的宽度

circos.par("fontsize" = 10) # 设置字体大小

circos.par("start.degree" = 90) # 设置开始的角度

# 制作圆/弦图

circos.plot(df, col = colors)

# 添加标签

circos.trackText(ylim = c(0.8, 1), track.height = 0.1, labels = df$category,

sector.index = 1, start.degree = 90, end.degree = 270, adj = c(0, 0.5))

在以上代码中,我们通过circos.par函数来设置圆/弦图的参数。circos.trackText函数用于在图中添加标签,参数ylim和track.height指定了标签的位置和大小,labels参数指定了标签的内容,sector.index、start.degree和end.degree参数指定了标签的位置,adj参数用于调整标签的对齐方式。

本文介绍了使用R中的circlize包制作圆/弦图的方法,并通过一个实例演示了其用法。通过圆/弦图,我们可以直观地展示数据之间的关系和比例,使得数据分析更加易读和可视化。通过调整参数和自定义图形,我们可以制作出漂亮且有吸引力的圆/弦图。使用circlize包,将数据可视化变得简单而有趣。