pip install vispy
python
import numpy as np
from vispy import app, gloo
class DataVisualizer(app.Canvas):
def __init__(self):
self.data = np.random.normal(size=(10000, 2)).astype(np.float32)
self.pos = gloo.VertexBuffer(self.data)
self.program = gloo.Program("""
attribute vec2 a_position;
void main (void)
{
gl_Position = vec4(a_position, 0.0, 1.0);
gl_PointSize = 2.0;
}
""",
"""
void main (void)
{
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
"""
)
self.program['a_position'] = self.pos
def on_draw(self, event):
gloo.clear(color='white')
self.program.draw('points')
def on_timer(self, event):
self.data += np.random.normal(size=(10000, 2)).astype(np.float32) * 0.01
self.pos.set_data(self.data)
self.update()
if __name__ == '__main__':
visualizer = DataVisualizer()
timer = app.Timer(interval=0.02)
timer.connect(visualizer.on_timer)
timer.start()
visualizer.show()
app.run()