# File lib/scruffy/graph.rb, line 130
    def render(options = {})
      options[:theme]               ||= theme
      options[:value_formatter]     ||= value_formatter
      options[:point_markers]       ||= point_markers
      options[:size]                ||= (options[:width] ? [options[:width], (options.delete(:width) * 0.6).to_i] : [600, 360])
      options[:title]               ||= title
      options[:layers]              ||= layers
      options[:min_value]           ||= bottom_value(:padded)
      options[:max_value]           ||= top_value
      options[:graph]               ||= self
      

      # Removed for now.
      # Added for making smaller fonts more legible, but may not be needed after all.
      #
      # if options[:as] && (options[:size][0] <= 300 || options[:size][1] <= 200)
      #   options[:actual_size] = options[:size]
      #   options[:size] = [800, (800.to_f * (options[:actual_size][1].to_f / options[:actual_size][0].to_f))]
      # end
      
      svg = ( options[:renderer].nil? ? self.renderer.render( options ) : options[:renderer].render( options ) )
      
      # SVG to file.
      if options[:to] && options[:as].nil?
        File.open(options[:to], 'w') { |file|
          file.write(svg)
        }
      end
      
      options[:as] ? rasterizer.rasterize(svg, options) : svg
    end