draw_data (SVG::Graph::Plot)

    # File temp/Graph/Plot.rb, line 252
          def draw_data
            line = 1

            x_min, x_max, x_div = x_range
            y_min, y_max, y_div = y_range
            x_step = (@graph_width.to_f - font_size*2) / (x_max-x_min)
            y_step = (@graph_height.to_f -  font_size*2) / (y_max-y_min)

            for data in @data
              x_points = data[:data][X]
              y_points = data[:data][Y]

              lpath = "L"
              x_start = 0
              y_start = 0
              x_points.each_index { |idx|
                x = (x_points[idx] -  x_min) * x_step
                y = @graph_height - (y_points[idx] -  y_min) * y_step
                x_start, y_start = x,y if idx == 0
                lpath << "#{x} #{y} "
              }

              if area_fill
                @graph.add_element( "path", {
                  "d" => "M#{x_start} #@graph_height #{lpath} V#@graph_height Z",
                  "class" => "fill#{line}"
                })
              end

              @graph.add_element( "path", {
                "d" => "M#{x_start} #{y_start} #{lpath}",
                "class" => "line#{line}"
              })

              if show_data_points || show_data_values
                x_points.each_index { |idx|
                  x = (x_points[idx] -  x_min) * x_step
                  y = @graph_height - (y_points[idx] -  y_min) * y_step
                  if show_data_points
                    @graph.add_element( "circle", {
                      "cx" => x.to_s,
                      "cy" => y.to_s,
                      "r" => "2.5",
                      "class" => "dataPoint#{line}"
                    })
                    add_popup(x, y, format( x_points[idx], y_points[idx] )) if add_popups
                  end
                  make_datapoint_text( x, y-6, y_points[idx] ) if show_data_values
                }
              end
              line += 1
            end
          end