-
Notifications
You must be signed in to change notification settings - Fork 64
Expand file tree
/
Copy pathline_dataslice.py
More file actions
54 lines (39 loc) · 1.37 KB
/
line_dataslice.py
File metadata and controls
54 lines (39 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
"""
Line Plot Data Slicing
======================
Example showing data slicing with cosine, sine, sinc lines.
"""
# test_example = true
# sphinx_gallery_pygfx_docs = 'screenshot'
import fastplotlib as fpl
import numpy as np
figure = fpl.Figure(size=(700, 560))
xs = np.linspace(-10, 10, 100)
# sine wave
ys = np.sin(xs)
sine = np.dstack([xs, ys])[0]
# cosine wave
ys = np.cos(xs) + 5
cosine = np.dstack([xs, ys])[0]
# sinc function
a = 0.5
ys = np.sinc(xs) * 3 + 8
sinc = np.dstack([xs, ys])[0]
sine_graphic = figure[0, 0].add_line(data=sine, thickness=5, colors="magenta")
# you can also use colormaps for lines!
cosine_graphic = figure[0, 0].add_line(data=cosine, thickness=12, cmap="autumn")
# or a list of colors for each datapoint
colors = ["r"] * 25 + ["purple"] * 25 + ["y"] * 25 + ["b"] * 25
sinc_graphic = figure[0, 0].add_line(data=sinc, thickness=5, colors=colors)
figure.show()
cosine_graphic.data[10:50:5, :2] = sine[10:50:5]
cosine_graphic.data[90:, 1] = 7
cosine_graphic.data[0] = np.array([[-10, 0, 0]])
# additional fancy indexing with boolean array
bool_key = [True, True, True, False, False] * 20
sinc_graphic.data[bool_key, 1] = 7 # y vals to 1
# NOTE: `if __name__ == "__main__"` is NOT how to use fastplotlib interactively
# please see our docs for using fastplotlib interactively in ipython and jupyter
if __name__ == "__main__":
print(__doc__)
fpl.loop.run()