Sha256: 81980589efcf163c33039b6946ebd42120a42a73197318786c536bd9b2a72412

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

module Daru
  module Plotting
    module Vector
      # Plots a Vector with Nyaplot on IRuby using the given options. Yields the
      # plot object (Nyaplot::Plot) and the diagram object (Nyaplot::Diagram)
      # to the block, which can be used for setting various options as per the
      # Nyaplot API.
      #
      # == Options
      #   type (:scatter, :bar, :histogram), title, x_label, y_label, color(true/false)
      #
      # == Usage
      #   vector = Daru::Vector.new [10,20,30,40], [:one, :two, :three, :four]
      #   vector.plot(type: :bar) do |plot|
      #     plot.title "My first plot"
      #     plot.width 1200
      #   end
      def plot opts={}
        options = {
          type: :scatter
        }.merge(opts)

        x_axis  = options[:type] == :scatter ? Array.new(@size) { |i| i } : @index.to_a
        plot    = Nyaplot::Plot.new
        diagram =
          if [:box, :histogram].include? options[:type]
            plot.add(options[:type], @data.to_a)
          else
            plot.add(options[:type], x_axis, @data.to_a)
          end

        yield plot, diagram if block_given?

        plot.show
      end
    end
  end
end if Daru.has_nyaplot?

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
daru-0.1.3.1 lib/daru/plotting/vector.rb
daru-0.1.3 lib/daru/plotting/vector.rb