...
1
2
3
4
5 package vgtex_test
6
7 import (
8 "image/color"
9 "log"
10 "os"
11
12 "gonum.org/v1/plot"
13 "gonum.org/v1/plot/plotter"
14 "gonum.org/v1/plot/vg"
15 "gonum.org/v1/plot/vg/draw"
16 "gonum.org/v1/plot/vg/vgtex"
17 )
18
19
20 func Example() {
21 p := plot.New()
22
23 p.Title.Text = `A scatter plot: $\sqrt{\frac{e^{3i\pi}}{2\cos 3\pi}}$`
24 p.Title.TextStyle.Font.Size = 16
25 p.X.Label.Text = `$x = \eta$`
26 p.Y.Label.Text = `$y$ is some $\Phi$`
27
28 scatter1, err := plotter.NewScatter(plotter.XYs{{X: 1, Y: 1}, {X: 0, Y: 1}, {X: 0, Y: 0}})
29 if err != nil {
30 log.Fatal(err)
31 }
32 scatter1.Color = color.RGBA{R: 255, A: 200}
33
34 scatter2, err := plotter.NewScatter(plotter.XYs{{X: 1, Y: 0}, {X: 1, Y: 0.5}})
35 if err != nil {
36 log.Fatal(err)
37 }
38 scatter2.GlyphStyle.Shape = draw.PyramidGlyph{}
39 scatter2.GlyphStyle.Radius = 2
40 scatter2.Color = color.RGBA{B: 255, A: 200}
41
42 p.Add(scatter1, scatter2)
43
44 txtFont := p.TextHandler.Cache().Lookup(
45 p.X.Label.TextStyle.Font,
46 p.X.Label.TextStyle.Font.Size,
47 )
48
49 c := vgtex.NewDocument(5*vg.Centimeter, 5*vg.Centimeter)
50 p.Draw(draw.New(c))
51
52 c.SetColor(color.Black)
53 c.FillString(txtFont, vg.Point{X: 2.5 * vg.Centimeter, Y: 2.5 * vg.Centimeter}, "x")
54
55 f, err := os.Create("testdata/scatter.tex")
56 if err != nil {
57 log.Fatal(err)
58 }
59 defer f.Close()
60
61 if _, err = c.WriteTo(f); err != nil {
62 log.Fatal(err)
63 }
64 err = f.Close()
65 if err != nil {
66 log.Fatal(err)
67 }
68 }
69
View as plain text