如何将 Circlize Chord Diagram 另存为图形对象

How to Save Circlize Chord Diagram as a graphic object

我使用 circlize 包在 R 中创建了一个和弦图。我注意到此图形未保存为 ggplot 对象。我试图使图形成为一个对象,以便我可以将它导出到 excel。有什么建议么?

chordDiagram(as.data.frame(ba_delivery_flow.sas7bdat), annotationTrack = "grid", preAllocateTracks =  1,
                        direction.type = "diffHeight")
circos.trackPlotRegion(track.index = 2, panel.fun = function(x, y) {
xlim = get.cell.meta.data("xlim")
ylim = get.cell.meta.data("ylim")
sector.name = get.cell.meta.data("sector.index")
circos.text(mean(xlim), ylim[1]+5, sector.name, facing = "clockwise", niceFacing = TRUE, adj = c(0, .5), cex = 1)
circos.axis(h = "top", labels.facing = "clockwise", labels.cex = 0.5, major.tick.percentage = 0.2, sector.index = sector.name, track.index = 2)

}, bg.border = NA)

R 有两个图形系统,basegrid。 (gridggplot2lattice 的基础。)你的图是用 base 构建的,不幸的是 base 图不是对象 R,所以你无法将它们分配给变量,保存它们有点不同。

要将绘图保存在文件中,您需要打开一个图形设备,例如 png,输入您的代码来绘制绘图,然后使用 dev.off() 关闭该设备。像这样:

png("my_plot.png") 

## all of your plotting code

dev.off()

查看 ?png 参数列表,以及一些其他设备。


顺便说一句,您也可以这样保存 ggplots。如果你有一个绘图对象 p,你可以将 print(p) 放在 png()dev.off() 之间。这基本上就是 ggsave 内部所做的。