Как сохранить диаграмму окружности в виде графического объекта

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

person ldan    schedule 26.03.2020    source источник


Ответы (1)


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 делает внутри.

person Gregor Thomas    schedule 26.03.2020