func TestHeatMapWithContour(t *testing.T) { if !*visualDebug { return } m := unitGrid{mat64.NewDense(3, 4, []float64{ 2, 1, 4, 3, 6, 7, 2, 5, 9, 10, 11, 12, })} h := NewHeatMap(m, palette.Heat(12, 1)) levels := []float64{1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5} c := NewContour(m, levels, palette.Rainbow(10, palette.Blue, palette.Red, 1, 1, 1)) c.LineStyles[0].Width *= 5 plt, _ := plot.New() plt.Add(h) plt.Add(c) plt.Add(NewGlyphBoxes()) plt.X.Padding = 0 plt.Y.Padding = 0 plt.X.Max = 3.5 plt.Y.Max = 2.5 plt.Save(7, 7, "heat.svg") }
func TestComplexContours(t *testing.T) { if !*visualDebug { return } for _, n := range []float64{0, 1, 2, 4, 8, 16, 32} { rand.Seed(0) data := make([]float64, 6400) for i := range data { r := float64(i/80) - 40 c := float64(i%80) - 40 data[i] = rand.NormFloat64()*n + math.Hypot(r, c) } m := unitGrid{mat64.NewDense(80, 80, data)} levels := []float64{-1, 3, 7, 9, 13, 15, 19, 23, 27, 31} c := NewContour(m, levels, palette.Rainbow(10, palette.Blue, palette.Red, 1, 1, 1)) plt, _ := plot.New() plt.Add(c) plt.X.Padding = 0 plt.Y.Padding = 0 plt.X.Max = 79.5 plt.Y.Max = 79.5 plt.Save(7, 7, fmt.Sprintf("complex_contour-%v.svg", n)) } }
func main() { var levels []float64 for l := 100.5; l < volcano.Matrix.(*mat64.Dense).Max(); l += 5 { levels = append(levels, l) } c := plotter.NewContour(volcano, levels, palette.Rainbow(len(levels), (palette.Yellow+palette.Red)/2, palette.Blue, 1, 1, 1)) quarterStyle := draw.LineStyle{ Color: color.Black, Width: vg.Points(0.5), Dashes: []vg.Length{0.2, 0.4}, } halfStyle := draw.LineStyle{ Color: color.Black, Width: vg.Points(0.5), Dashes: []vg.Length{5, 2, 1, 2}, } c.LineStyles = append(c.LineStyles, quarterStyle, halfStyle, quarterStyle) h := plotter.NewHeatMap(volcano, palette.Heat(len(levels)*2, 1)) p, err := plot.New() if err != nil { panic(err) } p.Title.Text = "Maunga Whau Volcano" p.Add(h) p.Add(c) p.X.Padding = 0 p.Y.Padding = 0 _, p.X.Max, _, p.Y.Max = h.DataRange() name := "example_volcano" for _, ext := range []string{ ".eps", ".pdf", ".svg", ".png", ".tiff", ".jpg", } { if err := p.Save(4, 4, name+ext); err != nil { panic(err) } } }