Kullanıcıların bir veriden sütun seçmesini ve her biri için histogram çizebilmesini sağlayan bir R kodu yazıyorum. Bu nedenle, ggplot2 kütüphanesini kullanarak gerekli sayıda çizim üretmek ve bunları tek bir listeye kaydetmek için bir 'for' döngüsü kullanıyorum. Ama karşılaştığım problem, 'for' döngüsünün her yinelemesinde, listedeki tüm nesnelerin aynı grafiği saklamasıdır. Sonuç olarak, son çıktı farklı bir şekilde etiketlenmiş ancak aynı (son) sütunu gösteren bir grafikler ızgarası içerir.R: Bir listede ggplot2 grafiği kaydetme
Bu sorunun oldukça eski olduğunu ve renaming ggplot2 graphs in a for loop ve https://stat.ethz.ch/pipermail/r-help/2008-February/154438.html numaralı yanıtların yararlı bir başlangıç noktası olduğunu öğrendim.
Grafik görüntü Grafiklerdeki metinlerin tercümesi. İşte kod: - Bu forumda soruya açık bir cevap kaçırmış ve ona doğru beni yönlendirmek eğer minnettar olacaktır özür dilerim
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()
. Umarım açıklamam açık olur ve değilse, lütfen gerekli açıklamaları bana bildirin.
Teşekkürler! Bunun yerine aes
kullanarak haritalama estetik
benim için de çalıştı. Teşekkürler! –