module GraphKit::Writer

Public Instance Methods

gnuplot_write(file_name, options={}) click to toggle source
# File lib/graphkit/gnuplot.rb, line 485
        def gnuplot_write(file_name, options={})
                #logf :gnuplot_write
                old_gp_term = gp.term
                old_gp_output = gp.output
                if file_name
                        gp.output = file_name
                        unless gp.term or options[:terminal]
                                case File.extname(file_name)
                                when '.pdf'
                                        gp.term = 'pdf size 20cm,15cm'
                                when '.ps'
                                        gp.term = 'post color'
                                when '.eps'
                                        unless options[:latex]
                                                gp.term = %[post eps color enhanced size  #{options[:size] or "3.5in,2.33in"}]
                                        else
                                                gp.term ||= "epslatex color dashed size #{options[:size] or "3.5in,#{options[:height] or "2.0in"}"} colortext standalone 8"
                                                (gp.term += " header '#{options[:preamble].inspect.gsub(/\\\n/, "\\\\\\n")}'"; options.delete(:preamble)) if options[:preamble]
                                        end
                                when '.jpg'
                                        gp.term = "jpeg size  #{options[:size] or "3.5in,2.33in"}"
                                when '.png'
                                        gp.term = "png size  #{options[:size] or "640,480"}"
                                when '.gif'
                                        gp.term = "gif size  #{options[:size] or "640,480"}"
                                
                                end
                        end
                end
                
                gp.output = file_name.sub(/\.eps/, '.tex') if options[:latex]
                options.delete(:size)
                gnuplot(options)
                if options[:latex]
                                name = file_name.sub(/\.eps$/, '')
                                raise "No file output by gnuplot" unless FileTest.exist? name + '.tex'
                                raise 'latex failed' unless system "latex #{name}.tex --interaction nonstopmode --halt-on-error -q"
                                raise 'dvips failed' unless system "dvips #{name}.dvi"
                                FileUtils.rm "#{name}.eps" if FileTest.exist? "#{name}.eps"
                                raise 'ps2eps failed' unless system "ps2eps #{name}.ps"
                end
#               ep file_name
    gp.term = old_gp_term
                gp.output = old_gp_output
                return File.basename(file_name, File.extname(file_name))
        end