У меня есть подготовленная программа моделирования, которая создает 26 отдельных файлов, которые мне нужно одинаково очерчивать на графике в R - я планирую многократно запускать эту программу и, следовательно, пытаюсь создать цикл, который создает и сохраняет графики для всех 26 файлов для каждого прогона.
Я пытаюсь сохранить файлы с их исходными именами (пока что имело место имя метки), поэтому я создал объект «имена» и сохранил каждый из них в файл png или jpeg. На данный момент цикл сохраняет только 1 файл (несмотря на чтение в 4 наборах данных со списком list.files), и он выглядит как белый квадрат с правильными размерами, а не как график, созданный makeplot (протестирован на отдельных файлах). ).
Образец моих данных:
Z X T
0 0 0
0 0.005 0
0 0.01 0
0 0.015 0
(и так далее для 84k строк)
Мой код:
filenames <- list.files(path=".",
pattern="csv",
full.names=TRUE)
names <- as.vector(filenames)
# Creating a directory to save contour plots
dir.create("Contour plots")
#Creates a contour plot in ggplot of the variable in xz space
makeplot <- function(filename) {
data <- as.data.frame(read.csv(file = filename), header = FALSE)
ggplot(data=data, mapping = aes(x = data[,2],
y=data[,1],
z = data[,3])) +
geom_raster(data=data, aes(fill=data[,3]), show.legend=TRUE, interpolate
= FALSE) +
scale_fill_gradient(limits=range(data[,3]), high = 'red', low =
'white')+
geom_contour(bins = 30, colour = "black") +
xlab(label = "Distance from ridge axis") +
ylab(label = "Depth") +
theme_classic()+
coord_cartesian(
ylim = c(0,1), xlim = c(0,2))+
scale_x_continuous(expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0)) +
guides(fill=guide_legend(title="Yb concentration")) +
theme(legend.position="bottom")
}
for (f in filenames) {
png(filename="Rplot%03d.png", height = 600, width = 1200)
makeplot(f)
dev.off()
}
Любая помощь будет оценена!