def draw
super
return unless @has_data
return
init_photo_bar_graphics()
spacing_factor = 0.9
@bar_width = @norm_data[0][DATA_COLOR_INDEX].columns
@norm_data.each_with_index do |data_row, row_index|
data_row[DATA_VALUES_INDEX].each_with_index do |data_point, point_index|
data_point = 0 if data_point.nil?
left_x = @graph_left + (@bar_width * (row_index + point_index + ((@data.length - 1) * point_index)))
left_y = @graph_top + (@graph_height - data_point * @graph_height) + 1
right_x = left_x + @bar_width * spacing_factor
right_y = @graph_top + @graph_height - 1
bar_image_width = data_row[DATA_COLOR_INDEX].columns
bar_image_height = right_y.to_f - left_y.to_f
bar_image = data_row[DATA_COLOR_INDEX].crop(0, 0, bar_image_width, bar_image_height)
@d.gravity = NorthWestGravity
@d = @d.composite(left_x, left_y, bar_image_width, bar_image_height, bar_image)
label_center = @graph_left + (@data.length * @bar_width * point_index) + (@data.length * @bar_width / 2.0)
draw_label(label_center, point_index)
end
end
@d.draw(@base_image)
end