Я пытаюсь создать список графиков своих данных, используя цикл для фильтрации (= "TAB_tmp2") и добавить новый график в список (= "ListeGRAPH").Я думаю, что проблема связана с разницей в таблице данных фильтра (= "TAB_tmp2").
Я прочитал несколько тем в Интернете об этом, но я не могу найти решение, которое могло бы работать в этом случае.
Мой код:
rm(list=ls()) # delete objects
#====================================
# Create data for the example
#====================================
TAB = data.frame(Types_Mesures = c(rep(1,3),rep(2,5),rep(3,10)))
TAB$ID_mesuresParType=NA
TAB$Mesures=log(c(1:length(TAB$Types_Mesures)))
Nb_Types=length(unique(TAB$Types_Mesures)) # in the real data, the number of "Types_Mesures" can change
for (x in 1:Nb_Types) {
TAB_tmp=TAB[TAB$Types_Mesures==x,2]
TAB[TAB$Types_Mesures==x,2]=c(1:length(TAB_tmp))
}
#====================================
# List of plots
#====================================
library(gridExtra)
library(ggplot2)
INPUTDirectory= "D:/TEST/"
setwd(dir=INPUTDirectory)
ListeGRAPH <- list()
for (x in 1:Nb_Types) {
TAB_tmp2=TAB[TAB$Types_Mesures==x,]
ListeGRAPH[[x]] <- ggplot(data = TAB_tmp2) +
geom_line(aes(x = TAB_tmp2$ID_mesuresParType, y = TAB_tmp2$Mesures))
# #Save graph
# png(filename = paste("TAB_plot_T",x,".png", sep = ""))
# print(ListeGRAPH[[x]])
# graphics.off()
}
gridExtra::grid.arrange(grobs = ListeGRAPH)
Когда я запускаю код, у меня появляется эта ошибка:
Ошибка: эстетика должна быть либо длины 1, либо такой же, какданные (3): x, y
Кажется, что grid.arrange не принимает графики разных размеров?Как я могу сделать список графиков с такого рода таблицей?В моих реальных данных число «Types_Mesures» может измениться.Более того, я думаю, что цикл for не позволяет использовать временную переменную (= "TAB_tmp2") для создания списка графиков, но этот код работает, когда я сохраняю свой график в файлах PNG.
Большое спасибо за помощь!