02-draw-line.go 761 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package main
  2. import (
  3. "math/rand"
  4. "gonum.org/v1/plot"
  5. "gonum.org/v1/plot/plotter"
  6. "gonum.org/v1/plot/plotutil"
  7. "gonum.org/v1/plot/vg"
  8. )
  9. func main() {
  10. var a, b float64 = 0.7, 3
  11. points1 := plotter.XYs{}
  12. points2 := plotter.XYs{}
  13. for i := 0; i <= 10; i++ {
  14. points1 = append(points1, plotter.XY{
  15. X: float64(i),
  16. Y: a*float64(i) + b,
  17. })
  18. points2 = append(points2, plotter.XY{
  19. X: float64(i),
  20. Y: a*float64(i) + b + (2*rand.Float64() - 1),
  21. })
  22. }
  23. plt := plot.New()
  24. plt.Y.Min, plt.X.Min, plt.Y.Max, plt.X.Max = 0, 0, 10, 10
  25. if err := plotutil.AddLinePoints(plt,
  26. "line1", points1,
  27. "line2", points2,
  28. ); err != nil {
  29. panic(err)
  30. }
  31. if err := plt.Save(5*vg.Inch, 5*vg.Inch, "02-draw-linepoint.png"); err != nil {
  32. panic(err)
  33. }
  34. }