Как я могу создать функцию для создания PDF-файла графиков - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть несколько объектов заговора, которые я хотел бы нарисовать в pdf. Как я могу отредактировать код ниже, чтобы создать функцию для создания одинаковых pdf-графиков:

Графики имеют разные названия 'main'.

pdf(file="results/sitar_df3df8_m.pdf")
plot(alsp_logbmc_sitar_m_3df, ylim = c(500,3500), main = "ALSPAC Males: df=3", xlab = "Age - y",  ylab = "BMC - g")
plot(alsp_logbmc_sitar_m_4df, ylim = c(500,3500), main = "ALSPAC Males: df=4", xlab = "Age - y",  ylab = "BMC - g")
plot(alsp_logbmc_sitar_m_5df, ylim = c(500,3500), main = "ALSPAC Males: df=5", xlab = "Age - y",  ylab = "BMC - g")
plot(alsp_logbmc_sitar_m_6df, ylim = c(500,3500), main = "ALSPAC Males: df=6", xlab = "Age - y",  ylab = "BMC - g")
plot(alsp_logbmc_sitar_m_7df, ylim = c(500,3500), main = "ALSPAC Males: df=7", xlab = "Age - y",  ylab = "BMC - g")
plot(alsp_logbmc_sitar_m_8df, ylim = c(500,3500), main = "ALSPAC Males: df=8", xlab = "Age - y",  ylab = "BMC - g")
plot(bmdcs_logbmc_sitar_m_3df, ylim = c(500,3500), main = "BMDCS Males: df=3", xlab = "Age - y",  ylab = "BMC - g")
plot(bmdcs_logbmc_sitar_m_4df, ylim = c(500,3500), main = "BMDCS Males: df=4", xlab = "Age - y",  ylab = "BMC - g")
plot(bmdcs_logbmc_sitar_m_5df, ylim = c(500,3500), main = "BMDCS Males: df=5", xlab = "Age - y",  ylab = "BMC - g")
plot(bmdcs_logbmc_sitar_m_6df, ylim = c(500,3500), main = "BMDCS Males: df=6", xlab = "Age - y",  ylab = "BMC - g")
plot(bmdcs_logbmc_sitar_m_7df, ylim = c(500,3500), main = "BMDCS Males: df=7", xlab = "Age - y",  ylab = "BMC - g")
plot(bmdcs_logbmc_sitar_m_8df, ylim = c(500,3500), main = "BMDCS Males: df=8", xlab = "Age - y",  ylab = "BMC - g")
dev.off()

1 Ответ

0 голосов
/ 14 апреля 2020

Допущение: Первый аргумент каждого графика в вызове функции вашего примера графика - это фрейм данных.

Шаги

  1. Создайте список фрейма данных, для которого вам нужно построить график. [Аналогично ниже]

    ldf <- list(alsp_logbmc_sitar_m_3df, alsp_logbmc_sitar_m_4df, alsp_logbmc_sitar_m_5df)

  2. Создать вектор имен для каждого графика в одном и том же последовательность.

    plot_name <- paste0("ALSPAC Males: df=", 3:5)

  3. Вызов функции ниже.

    plot_df_to_pdf_func <- function(list_of_dfs, pdf_name = "stack.pdf") { ldf <- list_of_dfs pdf(file = pdf_name) for (i in seq_along(ldf)) { name <- plot_name[i] df <- ldf[[i]] plot(df, main = name, xlab = "Age - y", ylab = "BMC - g") } dev.off() }

    plot_df_to_pdf_func(ldf)

Отказ от ответственности: Эта функция может быть не самой лучшей версией. Пожалуйста, импровизируйте согласно вашему использованию. Также приветствуются все предложения.

Спасибо !!!

...