gnuplotでマルチページPDFファイルを作成する方法は?
質問
Macを介してgnuplotを使用して数十個のプロットを作成します Ruby-Gnuplot. 。 Rubyスクリプトを再実行すると、プロットを持つ開いたウィンドウの数が2倍になります。プレビューで開かれたPDFにこれらすべてのプロットを出力できる場合、再実行するたびにファイルは自動的に更新され、多数のウィンドウを閉じる必要はありません。
現在、私はこれをPDFファイルごとに1つのプロットでのみ達成できます。
Gnuplot.open do |gp|
Gnuplot::Plot.new(gp) do |plot|
plot.arbitrary_lines << "set terminal pdf \n set output 'figures.pdf'"
# ...
end
end
gnuplotですべての数字で単一のPDFを作成するにはどうすればよいですか?
解決
うーん、少なくともun*xのgnuplotでは、postscriptとpdfのマルチページ出力は常にデフォルトでした - 端末タイプを変更したり、出力ファイルを再割り当てしたりしない限り、プロットするすべては新しいページに終わります。
つまり、あなたがします:
set terminal pdf
set output "multipageplot.pdf"
plot x, x*x
plot sin(x), cos(x)
set output ""
また、PDFファイルに2ページ、1つはライン/放物線、もう1つは正弦/コサインを含むことになります。
明確にするために:重要なことはすべてを発行することです plot
出力ファイルを変更したり、端子タイプを変更せずに、順番にコマンドします。 Gnuplotは既存のPDFファイルに追加されません。
他のヒント
Ruby-Gnuplotで何千ものプロットを作成し、Prawnと呼ばれる宝石を使用してPDFにコンパイルします。以下は、エビを使用したコードスニペットです。これには、いくつかの便利な機能が含まれています。
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
それはあなたの目的に適応するのに十分簡単なはずです。
所属していません StackOverflow