Class: Scruffy::Layers::Line

Inherits:
Base
  • Object
show all
Defined in:
lib/scruffy/layers/line.rb

Overview

Scruffy::Layers::Line

Author

Brasten Sager

Date

August 7th, 2006

Line graph.

Instance Attribute Summary

Attributes inherited from Base

#color, #complexity, #height, #max_value, #min_value, #opacity, #options, #points, #preferred_color, #relevant_data, #title, #width

Instance Method Summary collapse

Methods inherited from Base

#bottom_value, #initialize, #legend_data, #relevant_data?, #render, #sum_values, #top_value

Constructor Details

This class inherits a constructor from Scruffy::Layers::Base

Instance Method Details

#draw(svg, coords, options = {}) ⇒ Object

Renders line graph.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/scruffy/layers/line.rb', line 11

def draw(svg, coords, options={})
  svg.g(:class => 'shadow', :transform => "translate(#{relative(0.5)}, #{relative(0.5)})") {
    svg.polyline( :points => stringify_coords(coords).join(' '), :fill => 'transparent', 
                  :stroke => 'black', 'stroke-width' => relative(2), 
                  :style => 'fill-opacity: 0; stroke-opacity: 0.35' )

    coords.each { |coord| svg.circle( :cx => coord.first, :cy => coord.last + relative(0.9), :r => relative(2), 
                                      :style => "stroke-width: #{relative(2)}; stroke: black; opacity: 0.35;" ) }
  }


  svg.polyline( :points => stringify_coords(coords).join(' '), :fill => 'none', 
                :stroke => color.to_s, 'stroke-width' => relative(2) )

  coords.each { |coord| svg.circle( :cx => coord.first, :cy => coord.last, :r => relative(2), 
                                    :style => "stroke-width: #{relative(2)}; stroke: #{color.to_s}; fill: #{color.to_s}" ) }
end