2017-04-03 67 views
0

我試圖生成很多boxlot,並將它們保存在單獨的文件中。每個boxplot應該基於一個數據幀的變量。我或多或少地試圖「複製」以下解決方案:Looping over plots,但這不起作用。循環播放boxlot(數據幀列)

for(i in c("varname1","varname2")) { 
    png(paste(i, "png", sep = "."), width = 400, height = 400) 
    print(ggplot(df) + geom_boxplot(aes_string(y =seq_along(i) , x = i)) +  
    theme_bw()) 
    dev.off() 
} 

我搜索了一個這個網站的解決方案,但也找不到有效的東西。

+0

一個base r boxplot循環也會很好:'boxplot(dataframe $ varname)' – placebo

+0

請問什麼是確切的錯誤信息或問題? _但那並不工作_是相當模糊的。 – Uwe

+1

這些地塊需要生活在不同的文件中嗎?這聽起來像是'facet'的絕佳機會...... –

回答

0

我找到了解決方案。 'seq_along'應該被刪除。 我也改變了一些其他的東西:我添加了「歷史」。作爲文件名的前綴,刪除了x比例中的可視元素,並刪除了錯誤以防止警告。

for(i in c("varname1", "varname2", "varname3")) { 
png(paste("Hist",i, "png", sep = "."), width = 400, height = 400) 
print(ggplot(df) + geom_boxplot(aes_string(y=i, x = 0), na.rm=TRUE) + 
scale_x_discrete(breaks=NULL) + xlab(NULL) + theme_bw()) 
dev.off() 
} 

對我來說有點奇怪,是ggplot以某種方式期望X變量。我通過將x設置爲零並將這些元素隱藏在視覺效果中而忽略了這一點。所以這只是有點煩人。