grm/event_handlingΒΆ

[GRM] Event handling for resizing and new plots

The following is printed:

filling argument container...
plotting data...
Got new plot event, plot_id: 0
Got size event, size: (600, 600)
Press any key to continue...
<ENTER>
plotting data...
Got size event, size: (1000, 1000)
Press any key to continue...
<ENTER>
plotting data...
Got new plot event, plot_id: 1
Got size event, size: (1000, 1000)
Press any key to continue...
<ENTER>
import math
import sys
import numpy as np
import grm


def new_plot_callback(event):
    print("Got new plot event, plot_id: %s" % event.plot_id, file=sys.stderr)


def size_callback(event):
    print("Got size event, size: (%s, %s)" % (event.width, event.width))


n = 1000
x_vals = np.linspace(0, 2 * math.pi, n)

print("filling argument container...")


args = grm.args.new(
    {
        "series": [{"x": x_vals, "y": np.sin(x_vals)}, {"x": x_vals, "y": np.cos(x_vals)}],
        "labels": ["sin", "cos"],
        "kind": "line",
    }
)

grm.event.register(grm.event.EventType.NEW_PLOT, new_plot_callback)
grm.event.register(grm.event.EventType.SIZE, size_callback)

print("plotting data...")

grm.plot.plot(args)

print("Press any key to continue...")
sys.stdin.read(1)

args["size"] = [1000.0, 1000.0]

print("plotting data...")

grm.plot.plot(args)

print("Press any key to continue...")
sys.stdin.read(1)

args["size"] = [1000.0, 1000.0]

print("plotting data...")

grm.plot.switch(1)
grm.plot.plot(args)

print("Press any key to continue...")
sys.stdin.read(1)

del args
grm.plot.finalize()