# class SVG::Graph::BarBase

# Synopsis¶ ↑

A superclass for bar-style graphs. Do not attempt to instantiate directly; use one of the subclasses instead.

# Author¶ ↑

Sean E. Russell <serATgermaneHYPHENsoftwareDOTcom>

Copyright 2004 Sean E. Russell This software is available under the Ruby license

### Attributes

bar_gap[RW]

Whether to have a gap between the bars or not, default is true, set to false if you don't want gaps.

stack[RW]

How to stack data sets. :overlap overlaps bars with transparent colors, :top stacks bars on top of one another, :side stacks the bars side-by-side. Defaults to :overlap.

### Public Class Methods

new(config) click to toggle source

Ensures that :fields are provided in the configuration.

Calls superclass method SVG::Graph::Graph.new

    # File lib/SVG/Graph/BarBase.rb, line 20
    def initialize config
        raise "fields was not supplied or is empty" unless config[:fields] &&
        config[:fields].kind_of?(Array) &&
        config[:fields].length > 0
        super
    end

### Public Instance Methods

set_defaults() click to toggle source

In addition to the defaults set in Graph::initialize, sets

#bar_gap

  true

stack

  :overlap

    # File lib/SVG/Graph/BarBase.rb, line 30
    def set_defaults
        init_with( :bar_gap => true, :stack => :overlap )
    end

### Protected Instance Methods

get_css() click to toggle source

    # File lib/SVG/Graph/BarBase.rb, line 58
          def get_css
            return <<EOL
    /* default fill styles for multiple datasets (probably only use a single dataset on this graph though) */
    .key1,.fill1{
            fill: #ff0000;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 0.5px;
    }
    .key2,.fill2{
            fill: #0000ff;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key3,.fill3{
            fill: #00ff00;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key4,.fill4{
            fill: #ffcc00;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key5,.fill5{
            fill: #00ccff;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key6,.fill6{
            fill: #ff00ff;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key7,.fill7{
            fill: #00ffff;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key8,.fill8{
            fill: #ffff00;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key9,.fill9{
            fill: #cc6666;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key10,.fill10{
            fill: #663399;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key11,.fill11{
            fill: #339900;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    .key12,.fill12{
            fill: #9966FF;
            fill-opacity: 0.5;
            stroke: none;
            stroke-width: 1px;
    }
    EOL
          end

max_value() click to toggle source

    # File lib/SVG/Graph/BarBase.rb, line 43
    def max_value
    @data.collect{|x| x[:data].max}.max
    end

min_value() click to toggle source

    # File lib/SVG/Graph/BarBase.rb, line 47
    def min_value
      min = 0
      if min_scale_value.nil?
        min = @data.collect{|x| x[:data].min}.min
        min = min > 0 ? 0 : min
      else
        min = min_scale_value
      end
      return min
    end