2017-07-10 15 views
0

我想redicrect從朱莉婭語言腳本中的所有圖形輸出到一個單一的多頁PDF文件,類似於將是R:重定向圖形輸出,多頁PDF在朱莉婭

pdf(foo.pdf) 
plot(dummy1) 
plot(dummy2) 
... 
plot(dummyn) 
dev.off() 

Redicrecting的輸出流通過

writemime(io, "application/pdf", plot) 

適用於單個文件,但它似乎不會追加到現有的文件。

請注意,我只想將腳本中的所有數字轉換爲單個pdf。我不想通過編織進行廣泛的報道。

任何想法?

+2

是否有迫切需要通過朱莉婭完成此操作?如果您將PDF圖像製作爲單獨的PDF文件,那麼您可以運行許多優秀的unix系統命令之一來加入pdf文件。 –

+0

我希望能夠在unix服務器和Windows VM上運行相同的代碼。 –

回答

0

我通常使用matplotlib的PdfPages後端,我猜它是一個作弊的答案,因爲它使用python,但這裏有一個例子。

例如

using PyCall, PyPlot 
@pyimport matplotlib.backends.backend_pdf as pdf 

figures = [] # this array will contain all of the figures 
for i in 1:2 
    f = figure(figsize=(11.69,8.27)) # A4 figure 
    ax = subplot(111) 
    ax[:plot](rand(5,100)) # random plot 
    push!(figures,f) # add figure to figures array 
end 

pdffile = pdf.PdfPages("fig.pdf") # create pdf file 
[pdffile[:savefig](f) for f in figures] # add figures to file 
pdffile[:close]() # close pdf file 
+0

備註:當我運行下面的命令時,在同一個腳本中生成圖,它會完美地完成。但是,當我將這些圖形生成爲由函數調用產生的Plots.Plot {Plots.PyPlotBackend}對象時,迭代中的第一個繪製曲線將是一條直線,其他曲線將是正確的。我現在通過兩次繪製第一個圖形來解決這個問題,然後在pdf中爲圖形[1:4]中的f編寫'[pdffile [:savefig](f)]'。工程,但我想了解爲什麼發生這種情況。 –

+0

不確定對不起,我還沒有到使用Plots.jl界面。 –