2013-04-08 60 views
5

我一直在這一切上午努力,仍然無法找到解決的辦法閱讀計算器相關帖子後添加適當的標題ggplot

我有以下代碼:

names <- colnames(df[17:length(df)]) 

counter = 17L 

for (i in 1:length(names)) { 
    df.tax <- subset(df, df[,c(counter)] != 0) 
    counter = counter + 1L 
    meta <- subset(df.tax, select=c(1:16)) 
    meltmeta <- melt(meta, id=c("Collector", "Year","Week","Cities","Provinces")) 
    ppv <- ggplot(meltmeta, aes(title = paste(names[i]), factor(Provinces), value)) 
    ppv + geom_boxplot() + geom_boxplot(aes(fill=Collector), alpha=I(0.5)) + geom_point(aes(color=Collector), size=1) +facet_wrap(~variable, scale="free") 
    ggsave(file = paste(names[i], sep=".","provinces_vs_climate.pdf"), width=16, height=8) 
} 

我的問題是,我不能爲ggplot添加正確的標題。在for循環的每一次迭代中,我都通過對df的部分進行子集來生成一個名爲df.tax的新數據框。我融化df,然後嘗試使用ggplot生成一個圖。

我設法在ggsave上每次迭代都用不同的文件名(基於names數組)來保存每個plot,但ggplot只是爲每個plot生成標題「paste(names [i])」。

我試過了,得到(),粘貼(),實驗室()...等,但沒有工作

任何人都知道我怎樣才能解決這個問題呢?

回答

11

joran所述,自ggplot2版本0.9.2開始,爲您的繪圖設置標題的最簡單方法是使用ggtitle。使用ggtitle你的代碼看起來像這樣:

for (i in 1:length(names)) { 
    df.tax <- subset(df, df[,c(counter)] != 0) 
    counter = counter + 1L 
    meta <- subset(df.tax, select=c(1:16)) 
    meltmeta <- melt(meta, id=c("Collector", "Year","Week","Cities","Provinces")) 
    ppv <- ggplot(meltmeta, aes(factor(Provinces), value)) 
    ppv <- ppv + geom_boxplot() 
    ppv <- ppv + geom_boxplot(aes(fill=Collector), alpha=I(0.5)) 
    ppv <- ppv + geom_point(aes(color=Collector), size=1) 
    ppv <- ppv + facet_wrap(~variable, scale="free") 
    ppv <- ppv + ggtitle(paste(names[i])) 
    ggsave(file = paste(names[i], sep=".","provinces_vs_climate.pdf"), width=16, height=8) 
} 
+1

沒有必要鏈接到我的個人資料,甚至沒有提到我真的。如果我限制自己的評論,那是因爲我沒有時間/傾向來寫答案,並且完全期望別人這樣做。 :) – joran 2013-04-08 21:19:06

+0

如果您願意,我會刪除鏈接。雖然我很高興自己點擊了它,因爲我是北歐滑雪者/數據分析師(多麼令人驚喜)。 – Wilduck 2013-04-08 21:23:54

+1

不需要刪除它......只是讓你知道把我的任何評論作爲答案都是完全正確的,就是這些。 – joran 2013-04-08 21:26:07