Как сохранить Circlize Chord Diagram в виде графического c объекта - PullRequest
0 голосов
/ 26 марта 2020

Я создал диаграмму аккордов в R, используя пакет circlize. Я заметил, что этот график c не сохраняется как объект ggplot. Я пытаюсь сделать графический c объект, чтобы я мог экспортировать его в 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)

1 Ответ

1 голос
/ 26 марта 2020

R имеет две графические системы, base и grid. (grid - это то, на чем построены ggplot2 и lattice.) Ваш график построен с 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 делает внутри.

...