Я пытаюсь построить несколько графиков «объекта последовательности состояний», созданного с помощью пакета TraMineR
с использованием функции plot_grid()
.Моя главная проблема в том, что я не могу сохранить графики, созданные с помощью функции seqplot()
, в списке.Моя проблема не в , как расположить легенду или «вспомогательные» графики , а в том, как на самом деле построить последовательные диаграммы в сетке.
Я сохранил графики ggscatter в списке и передал этот списокдо функции plot_grid () раньше - так что я относительно уверен, что это работает в целом.Я думаю, что проблема в основном в типе объекта, создаваемого seqplot()
.Я пытался сохранить графики с помощью функции as.ggplot()
, которая не работала (пример A ниже).
Использование функции recordPlot()
работает более или менее.Это выглядит не очень хорошо (пример B + C ниже).
library(TraMineR)
library(ggplotify)
data(biofam)
biofam.lab <- c("Parent", "Left", "Married", "Left+Marr",
"Child", "Left+Child", "Left+Marr+Child", "Divorced")
biofam.seq <- seqdef(biofam[1:600,], 10:25, labels=biofam.lab)
# Example A ---------------------------------------------------------------
# not even able to store the plot
plot.list <- list()
plot.list[[1]] <- as.ggplot(seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start"))
# Example B and C ---------------------------------------------------------
plot.list <- list()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[1]] <- recordPlot()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[2]] <- recordPlot()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[3]] <- recordPlot()
seqplot(biofam.seq, type = "I", with.legend = FALSE, sortv = "from.start")
plot.list[[4]] <- recordPlot()
# Example B
plot_grid(plotlist = plot.list, ncol = 2)
# Example C
plot_grid(
plot_grid(plotlist = plot.list, ncol = 2),
plot_grid(plotlist = plot.list, ncol = 2)
)
Я хочу быть относительно свободным в размещении фактических элементов, которые я хочу построить в сетке.Например, я хочу сохранить страницу, содержащую 13 таких графиков и легенду в сетке 5 x 3 - как видно из примера.Вот почему я думаю, что использование plot_grid () работает лучше, чем, например, par(mfrow = c(5,3))
.Кроме того, используя par()
, я получаю «Ошибка в plot.new (): слишком большие поля рисунка».