2016-07-07 56 views
0

我需要幫助ggplot。 我有一個大數據框,包括不同年份收集的不同物種。對於每個物種和年份,有兩個樣本,每個樣本代表一個長度頻率分佈。我需要創建一個ggplot函數來繪製不同物種,年份和樣本的相同圖。以下代碼爲我使用過幾次的情節:我需要創建一個函數來製作相同類型的不同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

相關問題