Ruby 如何使用Gnuplot创建多页PDF文件?
我在Mac via上用Gnuplot制作了十几个情节。如果我重新运行我的ruby脚本,那么带有绘图的打开窗口的数量将加倍。如果我可以将所有这些绘图输出到预览中打开的PDF中,那么每次重新运行后,该文件都会自动更新,我不需要关闭大量的窗口 目前,我只能通过每个PDF文件绘制一个图来实现这一点:Ruby 如何使用Gnuplot创建多页PDF文件?,ruby,pdf,gnuplot,multipage,Ruby,Pdf,Gnuplot,Multipage,我在Mac via上用Gnuplot制作了十几个情节。如果我重新运行我的ruby脚本,那么带有绘图的打开窗口的数量将加倍。如果我可以将所有这些绘图输出到预览中打开的PDF中,那么每次重新运行后,该文件都会自动更新,我不需要关闭大量的窗口 目前,我只能通过每个PDF文件绘制一个图来实现这一点: Gnuplot.open do |gp| Gnuplot::Plot.new(gp) do |plot| plot.arbitrary_lines << "set terminal
Gnuplot.open do |gp|
Gnuplot::Plot.new(gp) do |plot|
plot.arbitrary_lines << "set terminal pdf \n set output 'figures.pdf'"
# ...
end
end
Gnuplot.open do|gp|
Gnuplot::Plot.new(gp)do | Plot|
plot.arbitral_linesHmm,至少在用于UN*x的gnuplot上,postscript和PDF的多页输出始终是默认值-只要您不更改终端类型或重新分配输出文件,您打印的所有内容都将显示在新页面上
也就是说,你做到了:
set terminal pdf
set output "multipageplot.pdf"
plot x, x*x
plot sin(x), cos(x)
set output ""
PDF文件中有两个页面,一个包含直线/抛物线,另一个包含正弦/余弦
澄清:重要的是按顺序发出所有plot
命令,而不更改输出文件或终端类型。Gnuplot不会附加到现有的PDF文件。我用ruby Gnuplot制作了数千个绘图,并使用一个名为prawn的gem将它们编译成PDF。以下是使用prawn的代码片段,其中包括一些有用的功能:
require 'prawn'
def create_pdf
toy_catalogue = @toy_catalogue
full_output_filename ||= "#{output_path}/#{pre-specified_filename_string}"
Prawn::Document.generate(full_output_filename, :page_layout => :portrait, :margin => 5, :skip_page_creation => false, :page_size => [595, 1000]) do
toy_catalogue.each do |toy|
start_new_page
image toy[:plan_view], :at => [0,900], :width => 580
image toy[:front_view], :at => [0, 500], :width => 585
font_size(20) { draw_text toy[:name], :at => [5, 920] }
draw_text "production_date = #{toy[:date]}", :at => [420, 930]
end
end
end
这应该很容易适应您的目的。您是对的-我在两个绘图之间重新分配了输出。谢谢你睁开我的眼睛!我不明白。如果使用Ruby Gnuplot,在哪里设置终端/输出?