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