Skip to content

Commit 09d53c4

Browse files
committed
hplot: add example for time series
Signed-off-by: Sebastien Binet <[email protected]>
1 parent 1eab681 commit 09d53c4

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

hplot/README.md

+76
Original file line numberDiff line numberDiff line change
@@ -1178,3 +1178,79 @@ func ExampleLabel() {
11781178
}
11791179
}
11801180
```
1181+
1182+
## Time series
1183+
1184+
![timeseries-example](https://github.com/go-hep/hep/raw/main/hplot/testdata/timeseries_monthly_golden.png)
1185+
1186+
[embedmd]:# (ticks_example_test.go go /func ExampleTicks_monthly/ /\n}/)
1187+
```go
1188+
func ExampleTicks_monthly() {
1189+
cnv := epok.UTCUnixTimeConverter{}
1190+
1191+
p := hplot.New()
1192+
p.Title.Text = "Time series (monthly)"
1193+
p.Y.Label.Text = "Goroutines"
1194+
1195+
p.Y.Min = 0
1196+
p.Y.Max = 4
1197+
p.X.AutoRescale = true
1198+
p.X.Tick.Marker = epok.Ticks{
1199+
Ruler: epok.Rules{
1200+
Major: epok.Rule{
1201+
Freq: epok.Monthly,
1202+
Range: epok.RangeFrom(1, 13, 2),
1203+
},
1204+
},
1205+
Format: "2006\nJan-02\n15:04:05",
1206+
Converter: cnv,
1207+
}
1208+
1209+
xysFrom := func(vs ...float64) plotter.XYs {
1210+
o := make(plotter.XYs, len(vs))
1211+
for i := range o {
1212+
o[i].X = vs[i]
1213+
o[i].Y = float64(i + 1)
1214+
}
1215+
return o
1216+
}
1217+
data := xysFrom(
1218+
cnv.FromTime(parse("2010-01-02 01:02:03")),
1219+
cnv.FromTime(parse("2010-02-01 01:02:03")),
1220+
cnv.FromTime(parse("2010-02-04 11:22:33")),
1221+
cnv.FromTime(parse("2010-03-04 01:02:03")),
1222+
cnv.FromTime(parse("2010-04-05 01:02:03")),
1223+
cnv.FromTime(parse("2010-04-05 01:02:03")),
1224+
cnv.FromTime(parse("2010-05-01 00:02:03")),
1225+
cnv.FromTime(parse("2010-05-04 04:04:04")),
1226+
cnv.FromTime(parse("2010-05-08 11:12:13")),
1227+
cnv.FromTime(parse("2010-06-15 01:02:03")),
1228+
cnv.FromTime(parse("2010-07-04 04:04:43")),
1229+
cnv.FromTime(parse("2010-07-14 14:17:09")),
1230+
cnv.FromTime(parse("2010-08-04 21:22:23")),
1231+
cnv.FromTime(parse("2010-08-15 11:12:13")),
1232+
cnv.FromTime(parse("2010-09-01 21:52:53")),
1233+
cnv.FromTime(parse("2010-10-25 01:19:23")),
1234+
cnv.FromTime(parse("2010-11-30 11:32:53")),
1235+
cnv.FromTime(parse("2010-12-24 23:59:59")),
1236+
cnv.FromTime(parse("2010-12-31 23:59:59")),
1237+
cnv.FromTime(parse("2011-01-12 01:02:03")),
1238+
)
1239+
1240+
line, pnts, err := hplot.NewLinePoints(data)
1241+
if err != nil {
1242+
log.Fatalf("could not create plotter: %+v", err)
1243+
}
1244+
1245+
line.Color = color.RGBA{B: 255, A: 255}
1246+
pnts.Shape = draw.CircleGlyph{}
1247+
pnts.Color = color.RGBA{R: 255, A: 255}
1248+
1249+
p.Add(line, pnts, hplot.NewGrid())
1250+
1251+
err = p.Save(20*vg.Centimeter, 10*vg.Centimeter, "testdata/timeseries_monthly.png")
1252+
if err != nil {
1253+
log.Fatalf("could not save plot: %+v", err)
1254+
}
1255+
}
1256+
```

0 commit comments

Comments
 (0)