ssa

Форк
0
/
Plot.go 
59 строк · 1.2 Кб
1
package gomathtests
2

3
import (
4
	"fmt"
5
	"image/color"
6

7
	"gonum.org/v1/plot"
8
	"gonum.org/v1/plot/plotter"
9
	"gonum.org/v1/plot/vg"
10
)
11

12
// Отрисовка графика с сохранением
13
func Plot(FilePathName string, opts ...[]float64) error {
14

15
	p := plot.New()
16

17
	p.Title.Text = FilePathName
18

19
	if len(opts) == 0 {
20
		return fmt.Errorf("nil plot data")
21
	}
22

23
	// Создание точек данных
24
	X := make([]float64, len(opts[0]))
25
	for i := range X {
26
		X[i] = float64(i)
27
	}
28
	for _, Y := range opts {
29

30
		pts := make(plotter.XYs, len(Y))
31
		for i := range pts {
32
			pts[i].X = X[i]
33
			pts[i].Y = Y[i]
34
		}
35

36
		// Создание линейного графика
37
		line, ErrNewLine := plotter.NewLine(pts)
38
		if ErrNewLine != nil {
39
			return ErrNewLine
40
		}
41
		line.LineStyle.Width = vg.Points(1)
42
		line.LineStyle.Color = color.RGBA{B: 255, A: 255}
43

44
		// Добавление графика к графическому контексту
45
		p.Add(line)
46

47
	}
48

49
	// Установка названий осей
50
	// p.X.Label.Text = "ns"
51
	// p.Y.Label.Text = "insFrc_AcfNrm, Hz"
52

53
	// Сохранение графика в файл
54
	if ErrSave := p.Save(6*vg.Inch, 4*vg.Inch, FilePathName); ErrSave != nil {
55
		return ErrSave
56
	}
57

58
	return nil
59
}
60

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.