I find that for some applications matplotlib really slows down my loops, but there are times that I really need to visualize the in-progress computations. While some other libraries might be faster, what I really want is simply to send instructions and data to a separate process that is performing the plotting. I'd like it to completely render a frame and simply skip instructions for following frames until it's done rendering, avoid buffering up every single frame that is sent to it, and have it plot the next available frame when it's done. I have yet to see a library that functions this way. Basically I want to be able to easily visualize an on-going computation without blocking it just for the rendering of temporary results.
It is designed exactly for this use-case -- visualizing results of an ongoing simulation. It does best effort plotting, but doesn't block computation for plotting. I would be happy to receive feedback on the package.
sudo apt-get install rabbitmq-server # or redis
pip install celery
You are ready to use their example[0] from celery import Celery
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
The idea of a mq might feel over-engineered. But the deployment and use is actually straight forward.[0]: http://docs.celeryproject.org/en/latest/getting-started/firs...
Here's an intro blog post from 2013 [0] and a current tutorial [1]. This functionality depends on Bokeh Server, docs here [2]
[0] https://www.anaconda.com/developer-blog/painless-streaming-p...
[1] http://nbviewer.jupyter.org/github/bokeh/bokeh-notebooks/blo...
[2] https://bokeh.pydata.org/en/latest/docs/user_guide/server.ht...
The saved files in Veusz are basically Python scripts which reproduce the plot. Plots are built by putting together different types of plotting widgets. These widgets can have their appearance and properties changed in the GUI. The program can also do various types of basic data analysis within the GUI. Plugins can be added for supporting different data formats, manipulating data or automating tasks.
An exhaustive list of dataviz libraries is maintained at https://github.com/fasouto/awesome-dataviz
For Python: