summaryrefslogtreecommitdiffstats
path: root/lib/SVG/Graph/BarBase.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/SVG/Graph/BarBase.rb')
-rw-r--r--lib/SVG/Graph/BarBase.rb278
1 files changed, 139 insertions, 139 deletions
diff --git a/lib/SVG/Graph/BarBase.rb b/lib/SVG/Graph/BarBase.rb
index acc9fecdd..7b7dda887 100644
--- a/lib/SVG/Graph/BarBase.rb
+++ b/lib/SVG/Graph/BarBase.rb
@@ -1,139 +1,139 @@
-require 'rexml/document'
-require 'SVG/Graph/Graph'
-
-module SVG
- module Graph
- # = 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[LICENSE.txt]
- #
- class BarBase < SVG::Graph::Graph
- # Ensures that :fields are provided in the configuration.
- 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
-
- # In addition to the defaults set in Graph::initialize, sets
- # [bar_gap] true
- # [stack] :overlap
- def set_defaults
- init_with( :bar_gap => true, :stack => :overlap )
- end
-
- # Whether to have a gap between the bars or not, default
- # is true, set to false if you don't want gaps.
- attr_accessor :bar_gap
- # 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.
- attr_accessor :stack
-
-
- protected
-
- def max_value
- @data.collect{|x| x[:data].max}.max
- end
-
- 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
-
- 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
- end
- end
-end
+require 'rexml/document'
+require 'SVG/Graph/Graph'
+
+module SVG
+ module Graph
+ # = 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[LICENSE.txt]
+ #
+ class BarBase < SVG::Graph::Graph
+ # Ensures that :fields are provided in the configuration.
+ 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
+
+ # In addition to the defaults set in Graph::initialize, sets
+ # [bar_gap] true
+ # [stack] :overlap
+ def set_defaults
+ init_with( :bar_gap => true, :stack => :overlap )
+ end
+
+ # Whether to have a gap between the bars or not, default
+ # is true, set to false if you don't want gaps.
+ attr_accessor :bar_gap
+ # 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.
+ attr_accessor :stack
+
+
+ protected
+
+ def max_value
+ @data.collect{|x| x[:data].max}.max
+ end
+
+ 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
+
+ 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
+ end
+ end
+end