Tôi đang viết mã R cho phép người dùng chọn cột từ dữ liệu và biểu đồ lô cho mỗi ô. Do đó, tôi đang sử dụng vòng lặp 'for' để tạo số lượng ô yêu cầu bằng cách sử dụng thư viện ggplot2 và lưu chúng trong một danh sách duy nhất. Nhưng vấn đề tôi phải đối mặt là, tại mỗi lần lặp của vòng lặp for ', tất cả các đối tượng trong danh sách đều lưu trữ cùng một cốt truyện. Do đó, kết quả cuối cùng bao gồm một mạng lưới các biểu đồ, được gắn nhãn khác nhau nhưng mô tả cùng một cột (cuối cùng).R: lưu các ô ggplot2 trong một danh sách
Tôi hiểu rằng câu hỏi này khá cũ và tôi đã tìm thấy câu trả lời trên renaming ggplot2 graphs in a for loop và https://stat.ethz.ch/pipermail/r-help/2008-February/154438.html làm điểm bắt đầu hữu ích.
Tôi đã sử dụng tập dữ liệu Swiss Fertility chuẩn có sẵn trong R để tạo các ô. Đây là mã: -
data_ <- swiss
data_ <- na.omit(data_)
u <- c(2, 3, 4, 5, 6)
plotData <- data_[,u]
bw <- 5
plotType <- 'probability'
library(ggplot2)
library(gridExtra)
histogramList <- vector('list', length(u))
if(plotType=='probability')
{
for(i in 1:length(u))
{
indexDataFrame <- data.frame(plotData[,i])
probabilityHistogram <- ggplot(indexDataFrame, aes(x=indexDataFrame[,1]))
histogramList[[i]] <- probabilityHistogram + geom_histogram(aes(y=..density..), binwidth=bw, colour='black', fill='skyblue') + geom_density() + scale_x_continuous(names(plotData)[i]) + opts(legend.position='none')
}
} else
if(plotType=='frequency')
{
for(i in 1:length(u))
{
indexDataFrame <- data.frame(plotData[,i])
probabilityHistogram <- ggplot(indexDataFrame, aes(x=indexDataFrame[,1]))
histogramList[[i]] <- probabilityHistogram + geom_histogram(aes(y=..count..), binwidth=bw, colour='black', fill='skyblue') + geom_density() + scale_x_continuous(names(plotData)[i]) + opts(legend.position='none')
}
}
arg_list <- c(histogramList, list(nrow=3, ncol=2))
#jpeg('histogram', width=1024, height=968)
do.call(grid.arrange, arg_list)
#graphics.off()
Tôi xin lỗi nếu tôi đã bỏ lỡ câu trả lời rõ ràng cho câu hỏi trong diễn đàn này và sẽ biết ơn nếu bạn có thể hướng dẫn tôi về vấn đề này. Tôi hy vọng lời giải thích của tôi là rõ ràng và nếu không, xin vui lòng cho tôi biết về các giải thích cần thiết.
Cảm ơn!
cũng làm việc cho tôi. cảm ơn! –