# File temp/Graph/BarHorizontal.rb, line 103
      def draw_data
        minvalue = min_value
        fieldheight = field_height

        unit_size = (@graph_width.to_f - font_size*2*right_font ) /
                        (get_x_labels.max - get_x_labels.min )
        bargap = bar_gap ? (fieldheight < 10 ? fieldheight / 2 : 10) : 0

        bar_height = fieldheight - bargap
        bar_height /= @data.length if stack == :side
        y_mod = (bar_height / 2) + (font_size / 2)
        
        field_count = 1
        @config[:fields].each_index { |i|
          dataset_count = 0
          for dataset in @data
            value = dataset[:data][i]
            
            top = @graph_height - (fieldheight * field_count)
            top += (bar_height * dataset_count) if stack == :side
            # cases (assume 0 = +ve):
            #   value  min  length          left
            #    +ve   +ve  value.abs - min minvalue.abs
            #    +ve   -ve  value.abs - 0   minvalue.abs
            #    -ve   -ve  value.abs - 0   minvalue.abs + value
            length = (value.abs - (minvalue > 0 ? minvalue : 0)) * unit_size
            left = (minvalue.abs + (value < 0 ? value : 0)) * unit_size

            @graph.add_element( "rect", {
              "x" => left.to_s,
              "y" => top.to_s,
              "width" => length.to_s,
              "height" => bar_height.to_s,
              "class" => "fill#{dataset_count+1}"
            })

            make_datapoint_text( 
              left+length+5, top+y_mod, value, "text-anchor: start; "
              )
            dataset_count += 1
          end
          field_count += 1
        }
      end