draw_data (SVG::Graph::Line)

    # File temp/Graph/Line.rb, line 182
          def draw_data
            minvalue = min_value
            fieldheight = (@graph_height.to_f - font_size*2*top_font) /
                             (get_y_labels.max - get_y_labels.min)
            fieldwidth = field_width
            line = @data.length

            prev_sum = Array.new(@config[:fields].length).fill(0)
            cum_sum = Array.new(@config[:fields].length).fill(-minvalue)

            for data in @data.reverse
              lpath = ""
              apath = ""

              if not stacked then cum_sum.fill(-minvalue) end

              data[:data].each_index do |i|
                cum_sum[i] += data[:data][i]

                c = calc_coords(i, cum_sum[i], fieldwidth, fieldheight)

                lpath << "#{c[:x]} #{c[:y]} "
              end

              if area_fill
                if stacked then
                  (prev_sum.length - 1).downto 0 do |i|
                    c = calc_coords(i, prev_sum[i], fieldwidth, fieldheight)

                    apath << "#{c[:x]} #{c[:y]} "
                  end

                  c = calc_coords(0, prev_sum[0], fieldwidth, fieldheight)
                else
                  apath = "V#@graph_height"
                  c = calc_coords(0, 0, fieldwidth, fieldheight)
                end

                @graph.add_element("path", {
                  "d" => "M#{c[:x]} #{c[:y]} L" + lpath + apath + "Z",
                  "class" => "fill#{line}"
                })
              end

              @graph.add_element("path", {
                "d" => "M0 #@graph_height L" + lpath,
                "class" => "line#{line}"
              })

              if show_data_points || show_data_values
                cum_sum.each_index do |i|
                  if show_data_points
                    @graph.add_element( "circle", {
                      "cx" => (fieldwidth * i).to_s,
                      "cy" => (@graph_height - cum_sum[i] * fieldheight).to_s,
                      "r" => "2.5",
                      "class" => "dataPoint#{line}"
                    })
                  end
                  make_datapoint_text(
                    fieldwidth * i,
                    @graph_height - cum_sum[i] * fieldheight - 6,
                    cum_sum[i] + minvalue
                  )
                end
              end

              prev_sum = cum_sum.dup
              line -= 1
            end
          end