2015-05-21 104 views
2

傍晚。我開始圍繞ggplot2開始研究,並且今天設法創建了一堆地塊。 但是我碰到了兩個問題。第一種是輸出在自動創建圖表時的樣子。 有人可以請我直嗎?ggplot2文件輸出問題

當我手動運行的情節使用...

ggplot(l.Exploration$Data,aes_string(x="domain",y="WP0", color="domain")) + 
    geom_point(position=position_jitter(width=0.3), alpha=0.4) + 
    geom_boxplot(size=1,alpha=0.9, outlier.size=1, outlier.shape=21, width=0.75, notch=TRUE) + 
    facet_wrap(~Exchange, ncol=2) + 
    ggtitle(plotTitle) + 
    theme(plot.title=element_text(size=rel(1.5), lineheight=.9, face="bold", colour="black")) + 
    xlab("Exchange") + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
    ylab("Weighted Price ($USD)") 

我得到一個整潔的情節如此... Manual initiated plot

但是當我創建的情節作爲循環的一部分,讓他們自動保存他們看起來很糟糕(是的,我知道aes_string(...,Y="WP0")是應該使用i的位,但我無法弄清楚)。

第二個問題是如何正確地指定爲aes_string Y.(我將在移動到另一個問題)

l_ply(-3:3, function(i){ 
    print(i) 
    path  <- "~/Documents/1. Dev/r/data/plot" 
    filename <- paste(path,"/Story_Price",i,".png",sep="") 
    yCol <- paste("l.Exploration$Data$WP",i,sep="") 

    if(i < 0)   { plotTitle <- paste("Story Publication Against Price\n[Lead = ",i,"]",sep="") 
    } else if (i==0) { plotTitle <- paste("Story Publication Against Price",sep="") 
    } else if (i>0) { plotTitle <- paste("Story Publication Against Price\n[Lag = ",i,"]",sep="") 
    } 

    ggplot(l.Exploration$Data,aes_string(x="domain",y="WP0", color="domain")) + 
    geom_point(position=position_jitter(width=0.3), alpha=0.4) + 
    geom_boxplot(size=1,alpha=0.9, outlier.size=1, outlier.shape=21, width=0.75, notch=TRUE) + 
    facet_wrap(~Exchange, ncol=2) + 
    ggtitle(plotTitle) + 
    theme(plot.title=element_text(size=rel(1.5), lineheight=.9, face="bold", colour="black")) + 
    xlab("Exchange") + 
    theme(axis.text.x = element_text(angle = 45, hjust = 1)) + 
    ylab("Weighted Price ($USD)") 

    dev.print(png, filename,res=600, height=1600, width=2500, units="px") 
}) 

Odd looking ggplot output

+1

使用'ggsave',而不是'dev.print'。 – Gregor

回答

6

讓我們來解決大小問題,其中涉及一個你問的兩個不同的問題。

問題: 您的dev.print參數給你一個圖表,大約是4×3的圖形不適合在這個空間裏,所以他們被截斷。

ggplot2有自己的保存命令,ggsave,這使得它更容易控制你的尺寸。

解決方案: 嘗試用這種替代dev.print

ggsave(file = "filename.png", dpi = 600, width = 8, height = 6, units = "in") 

越大dpi,較大的圖形將出現。將其與ggsave中的其他參數一起作爲ggplot2情節的一部分進行測試,您會發現以適合的方式進行保存。

+0

謝謝Dan&Gregor。我原本使用ggsave,但輸出看起來像一本兒童書。我曾假設,如果使用基於矢量的格式(比如說PDF),它可以在輸出上整齊地縮放,但當然指定更大的高度和寬度會使佈局質量有所不同。再次歡呼 – BarneyC