module Charts::Grid

Public Instance Methods

draw_grid() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 2
def draw_grid
  lines.each { |l| l.draw }
end
grid_line_values() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 11
def grid_line_values
  (0..number_of_grid_lines).map do |i|
    value = i.to_f * rounded_spread / number_of_grid_lines + min_value
    if spread_log10 < 1
      value.round(-spread_order_of_magnitude + 1)
    else
      value.round
    end
  end
end
lines() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 6
def lines
  grid_line_class = vertical? ? HorizontalGridLine : VerticalGridLine
  grid_line_values.map { |v| grid_line_class.new(self, v) }
end
number_of_grid_lines() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 22
def number_of_grid_lines
  (3..7).find { |line_count| spread_factor % line_count == 0 } || 4
end
rounded_spread() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 38
def rounded_spread
  rs = spread_factor * 10 ** spread_order_of_magnitude
  spread_log10 % 1 == 0 ? rs / 10 : rs
end
spread() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 26
def spread
  max_value - min_value
end
spread_factor() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 43
def spread_factor
  f = (spread.to_f / 10 ** spread_order_of_magnitude).floor
  spread_log10 % 1 == 0 ? 10 * f : f
end
spread_log10() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 34
def spread_log10
  Math.log10(spread)
end
spread_order_of_magnitude() click to toggle source
# File lib/charts/bar_chart/grid/grid.rb, line 30
def spread_order_of_magnitude
  spread_log10.floor
end