2017-07-10 14 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界面。 –