質問

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

それはあなたの目的に適応するのに十分簡単なはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top