...

Source file src/gonum.org/v1/plot/vg/vgtex/canvas_example_test.go

Documentation: gonum.org/v1/plot/vg/vgtex

     1  // Copyright ©2016 The Gonum Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     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  // An example of making a LaTeX plot.
    20  func Example() {
    21  	p := plot.New()
    22  	// p.HideAxes()
    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