2016-07-07 3 views
0

私はggplotの助けが必要です。 私は、異なる年に収集された異なる種を含む大きなデータフレームを持っています。各種および年ごとに2つのサンプルがあり、各サンプルは長さの頻度分布を表します。私は異なる種、年、およびサンプルの同じプロットをプロットするためにggplot関数を作成する必要があります。以下は1つのプロットのコードを数回使用しました。同じ種類の異なるggplot2を作成するための関数を作成する必要があります

ggplot(df, aes(x=lenClass, y=Ntot, fill=Sex)) + 
geom_bar(stat="identity") + 
facet_grid(Year~DayTime) + theme_bw() + 
xlab('CL mm') + ylab('No.individuals') + 
ggtitle("StrataN1 - Sp1") + 
theme(axis.title.x = element_text(size=13), 
    axis.title.y = element_text(size=13), 
    plot.title = element_text(size = 14), 
    strip.text.x = element_text(size=10.5), 
    strip.text.y = element_text(size=8), 
    axis.text.x = element_text(size=8.5), 
    axis.text.y = element_text(size=7.5)) 

ありがとうございました!

+1

再現可能なデータをご覧ください。プロットの見た目のイメージも同様に役立ちます。 –

+0

私が最近尋ねた質問にSven Hohensteinの答えをチェックしてください。おそらくあなたのニーズにそれを適応させることができます:http://stackoverflow.com/questions/34397876/writing-to-the-global-environment-from-a- function-in-r – yoland

答えて

0

このトリックは、クラスにループを持たせることです。ループの中で、データをフィルタリングして他のデータを前処理し、プロットを生成、表示、保存することができます。

library(ggplot2) 

mainDF = iris 
species = unique(mainDF$Species) 
allPlots = list() #List to save plots 

for(sp in species){ # For each class 

    filteredDF = mainDF[mainDF$Species == sp,] # Filter dataframe 
    spPlot = ggplot(filteredDF, aes(x = Petal.Length, y = Petal.Width)) + geom_point() + ggtitle(sp) # Generate plot 
    plot(spPlot) # Direct plotting 
    allPlots[[sp]] = spPlot # Save plot to list 

} 
+0

完了!どうもありがとうございます!今私は私のプロットを持っている! :) – user3032235

関連する問題