6

ruby-gnuplotを介して、Mac 上の 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 を作成するにはどうすればよいですか?

4

2 に答える 2

10

うーん、少なくとも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ファイルに追加しません。

于 2010-12-02T11:21:57.960 に答える
0

ruby-gnuplot で何千ものプロットを作成し、prawn という gem を使用してそれらを 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

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

于 2014-04-16T23:58:57.157 に答える