Моя проблема заключается в следующем: я хотел бы создать 151 график в R с помощью GGplot.
Я хотел бы начать представлять свои данные:
У меня есть первый набор данных с именем "df", который содержит 152 столбца. Первые 151 столбец соответствуют Y-переменным. 152-й столбец соответствует переменной x. В то время как у Y есть 151 переменная для 151 графика, переменная x идентична для 151 графика.
Кроме того, у меня есть второй набор данных с именем "df_2". Этот набор данных содержит два столбца: один столбец с именем переменной, с именами переменных из «df» и второй столбец с соответствующим им «устойчивым значением».
В принципе, я бы хотел иметь 151 график в формате pdf , который выглядит как график ниже (со связанными переменными) ![enter image description here](https://i.stack.imgur.com/SCYli.png)
Вот мой код для получения такого графика
df_base = df
steady_state_df = df_2
ggplot(df_base, aes(x = df_base[, 152])) +
geom_line(aes(y = df_base$capital), col = "darkorange") +
geom_line(aes(y = steady_state_df$steady_state[steady_state_df$variables == "capital"]), col = "skyblue") +
ggtitle(paste(' Figure 11: ', "Capital", sep='')) +
theme_bw() +
theme(axis.title.x=element_blank(), axis.title.y=element_blank(), plot.title = element_text(family="Times New Roman", hjust = 0.5, margin = margin(t = 20, r = 20, b = 20, l = 20)), legend.position="none", axis.ticks.length=unit(-0.1, "cm"), axis.text.x = element_text(margin = margin(t = 10, r = 10, b = 10, l = 10)), axis.text.y = element_text(margin = margin(t = 10, r = 10, b = 10, l = 10))) +
scale_x_continuous(breaks= c(0, 20, 40, 60, 80, 100)) +
scale_x_continuous(sec.axis = dup_axis(labels = NULL)) +
scale_y_continuous(sec.axis = dup_axis(labels = NULL)) +
coord_cartesian(xlim = c(0,100), ylim = c(min(df_base$capital), max(df_base$capital)))
Теперь, когда у меня есть такой "модель кода графа", я хотел бы реализовать al oop, чтобы получить 151 из этих графов, проиндексированных по именам переменных. Вот что я сделал и не работает:
for(i in 1:151){
path = paste("~/Desktop/plotting_task/", varnames[i], ".pdf", sep = "")
pdf(file = path, # The directory you want to save the file in
width = 5, # The width of the plot in inches
height = 5)
ggplot(df_base, aes(x = df_base[, 152])) +
geom_line(aes(y = df_base[, i]), col = "darkorange") +
geom_line(aes(y = steady_state_df$steady_state[steady_state_df$variables == varnames[i]), col = "skyblue") +
ggtitle(paste(' Figure : ', i, varnames[i], sep='')) +
theme_bw() +
theme(axis.title.x=element_blank(), axis.title.y=element_blank(), plot.title = element_text(family="Times New Roman", hjust = 0.5, margin = margin(t = 20, r = 20, b = 20, l = 20)), legend.position="none", axis.ticks.length=unit(-0.1, "cm"), axis.text.x = element_text(margin = margin(t = 10, r = 10, b = 10, l = 10)), axis.text.y = element_text(margin = margin(t = 10, r = 10, b = 10, l = 10))) +
scale_x_continuous(breaks= c(0, 20, 40, 60, 80, 100)) +
scale_x_continuous(sec.axis = dup_axis(labels = NULL)) +
scale_y_continuous(sec.axis = dup_axis(labels = NULL)) +
coord_cartesian(xlim = c(0,100), ylim = c(min(df_base[, i]), max(df_base[, i])))
dev.off()
}
Может ли кто-нибудь мне помочь? Бесконечно большое спасибо