ssa

Форк
0
/
3d.go 
76 строк · 2.2 Кб
1
package graph
2

3
import (
4
	"fmt"
5

6
	"github.com/sbinet/go-gnuplot"
7
)
8

9
func TreeXDXD(x, y, z []float64) {
10

11
	fname := ""
12
	persist := false
13
	debug := true
14

15
	p, err := gnuplot.NewPlotter(fname, persist, debug)
16
	if err != nil {
17
		err_string := fmt.Sprintf("** err: %v\n", err)
18
		panic(err_string)
19
	}
20
	defer p.Close()
21

22
	p.CheckedCmd("plot %f*x", 23.0)
23
	p.CheckedCmd("plot %f * cos(%f * x)", 32.0, -3.0)
24
	//p.CheckedCmd("save foo.ps")
25
	p.CheckedCmd("set terminal png")
26
	p.CheckedCmd("set output 'plot001.png'")
27
	p.CheckedCmd(`set terminal png size 1280,720 enhanced font "Helvetica,20"`)
28
	p.CheckedCmd("set output 'output.png'")
29
	p.CheckedCmd("replot")
30
	p.CheckedCmd("q")
31

32
}
33

34
// Стуктура-настройка для реализации графика
35
type Option3D struct {
36
	FileNameDat string // Файл формата .dat, который содержит данные, которые необходимо построить
37
	FileNameOut string // Файл формата .png, который будет сохранён
38
	Titile      string // Подпись графика
39
	Xlabel      string // Подпись оси X
40
	Ylabel      string // Подпись оси Y
41
	Zlabel      string // Подпись оси Z
42
}
43

44
// Сделать 3D mash
45
func SplotMatrixFromFile(opt Option3D) error {
46

47
	// Запускаем термина
48
	p, err := gnuplot.NewPlotter("", false, false)
49
	if err != nil {
50
		return err
51
	}
52
	defer p.Close()
53

54
	p.CheckedCmd(`set terminal png size 1024,768 font "Helvetica,15.0"`)
55
	p.CheckedCmd(`set output "` + opt.FileNameOut + `"`)
56

57
	p.CheckedCmd(`splot "` + opt.FileNameDat + `" matrix w l`)
58
	p.CheckedCmd("set pm3d")
59
	p.CheckedCmd("unset surface")
60
	p.CheckedCmd(`set title "` + opt.Titile + `"`)
61
	p.CheckedCmd(`set xlabel "` + opt.Xlabel + `"`)
62
	p.CheckedCmd(`set ylabel "` + opt.Ylabel + `"`)
63
	p.CheckedCmd(`set zlabel "` + opt.Zlabel + `"`)
64

65
	p.CheckedCmd(`set terminal png size 1024,768 font "Helvetica,15.0"`)
66
	p.CheckedCmd(`set output "` + opt.FileNameOut + `"`)
67
	p.CheckedCmd("replot")
68

69
	p.CheckedCmd("set view map")
70

71
	p.CheckedCmd(`set terminal png size 1024,768 font "Helvetica,15.0"`)
72
	p.CheckedCmd(`set output "` + opt.FileNameOut + `"`)
73
	p.CheckedCmd("replot")
74

75
	return nil
76
}
77

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

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

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

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