func (sg *SvgGraphics) Scatter(points []chart.EPoint, plotstyle chart.PlotStyle, style chart.Style) { chart.GenericScatter(sg, points, plotstyle, style) /*********************************************** // First pass: Error bars ebs := style ebs.LineColor, ebs.LineWidth, ebs.LineStyle = ebs.FillColor, 1, chart.SolidLine if ebs.LineColor == "" { ebs.LineColor = "#404040" } if ebs.LineWidth == 0 { ebs.LineWidth = 1 } for _, p := range points { xl, yl, xh, yh := p.BoundingBox() // fmt.Printf("Draw %d: %f %f-%f\n", i, p.DeltaX, xl,xh) if !math.IsNaN(p.DeltaX) { sg.Line(int(xl), int(p.Y), int(xh), int(p.Y), ebs) } if !math.IsNaN(p.DeltaY) { sg.Line(int(p.X), int(yl), int(p.X), int(yh), ebs) } } // Second pass: Line if (plotstyle&chart.PlotStyleLines) != 0 && len(points) > 0 { path := fmt.Sprintf("M %d,%d", int(points[0].X), int(points[0].Y)) for i := 1; i < len(points); i++ { path += fmt.Sprintf("L %d,%d", int(points[i].X), int(points[i].Y)) } st := linestyle(style) sg.svg.Path(path, st) } // Third pass: symbols if (plotstyle&chart.PlotStylePoints) != 0 && len(points) != 0 { for _, p := range points { sg.Symbol(int(p.X), int(p.Y), style) } } ****************************************************/ }
func (ig *ImageGraphics) Scatter(points []chart.EPoint, plotstyle chart.PlotStyle, style chart.Style) { chart.GenericScatter(ig, points, plotstyle, style) }