私は、ユーザーがデータから列を選択し、それぞれのヒストグラムをプロットできるRコードを作成しています。したがって、私は 'for'ループを使用して、ggplot2ライブラリを使用して必要な数のプロットを生成し、それらを単一のリストに保存しています。しかし、私が直面している問題は、 'for'ループが繰り返されるたびに、リスト内のすべてのオブジェクトが同じプロットを格納しているということです。したがって、最終的な出力はヒストグラムのグリッドで構成され、異なるラベルが付けられていますが、同じ(最後の)列が示されています。R:ggplot2プロットをリストに保存する
私はこの質問がかなり古くて、renaming ggplot2 graphs in a for loopとhttps://stat.ethz.ch/pipermail/r-help/2008-February/154438.htmlの回答が有用な出発点になることを理解しました。
私はプロットを生成するためにRで利用可能な標準的なSwiss Fertilityデータセットを使用しました。ここでは、コードは次のようになります - 私はこのフォーラムで質問に対する明確な答えを見逃していると、あなたはそれに向かって私を指示することができれば感謝しなければならない場合、私は謝罪
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()
。私の説明がはっきりしていることを願っています。そうでない場合は、必要な説明を私に教えてください。
ありがとうございます!代わりにaes
を使用してマッピングの美学の
も私のために働いた。ありがとう! –