News for hackers. Stuff that matters.
Re:Python Graph Gallery by Dowwie on Monday October 16, 2017 @06:39AM (#15482239)
Check out plotly for general graphing use and bokeh for heavy loads.

An exhaustive list of dataviz libraries is maintained at https://github.com/fasouto/awesome-dataviz

For Python:

  * altair - Declarative statistical visualizations, based on Vega-lite.
  * bokeh - Interactive Web Plotting for Python.
  * diagram - Text mode diagrams using UTF-8 characters
  * ggplot - plotting system based on R's ggplot2.
  * glumpy - OpenGL scientific visualizations library.
  * holoviews - Complex and declarative visualizations from annotated data.
  * matplotlib - 2D plotting library.
  * missingno - provides flexible toolset of data-visualization utilities that allows quick visual summary of the completeness of your dataset, based on matplotlib.
  * plotly - Interactive web based visualization built on top of plotly.js
  * plotnine - A grammar of graphics for Python
  * pygal - A dynamic SVG charting library.
  * PyQtGraph - Interactive and realtime 2D/3D/Image plotting and science/engineering widgets.
  * seaborn - A library for making attractive and informative statistical graphics.
  * toyplot - The kid-sized plotting toolkit for Python with grownup-sized goals.
  * Veusz - https://veusz.github.io
  * VisPy - High-performance scientific visualization based on OpenGL.
Re:Python Graph Gallery by radarsat1 on Monday October 16, 2017 @09:01AM (#15482857)
Does anyone know of a good non-blocking plotting library for Python?

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.

Re:Python Graph Gallery by trextrex on Monday October 16, 2017 @10:32AM (#15483420)
You should check out https://github.com/IGITUGraz/live-plotter (I am the author of the package)

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.

Re:Python Graph Gallery by radarsat1 on Monday October 16, 2017 @02:14PM (#15485385)
Cool, thanks.
Re:Python Graph Gallery by MattConfluence on Monday October 16, 2017 @09:36AM (#15483041)
What I did when I had a similar problem was to have a completely separate visualization program and pass data messages to it (using Celery and RabbitMQ). But that was in a setting where I was already using Celery for other tasks. Setting up a message queue for just visualization feels a bit over-engineered. Maybe you can just write to a text file, or a Sqlite db, and have the visualization program poll for changes.
Re:Python Graph Gallery by oneweekwonder on Monday October 16, 2017 @10:06AM (#15483268)
Rabbitmq or redis will already be in apt or yum so a simple

  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...

Re:Python Graph Gallery by edraferi on Monday October 16, 2017 @09:44AM (#15483107)
Bokeh supports streaming data to existing graphs. This lets you define a graph, display it in a browser, and then push updates from your code. This is a lot lighter than doing a full draw in matplotlib, plus works over the web.

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...

Re:Python Graph Gallery by Dowwie on Monday October 16, 2017 @10:26AM (#15483381)
Re:Python Graph Gallery by radarsat1 on Monday October 16, 2017 @09:54AM (#15483188)
Oh that sounds excellent, I'll have to check it out.
Re:Python Graph Gallery by xioxox on Monday October 16, 2017 @10:44AM (#15483517)
Veusz (https://veusz.github.io/) does this. Data are sent to the plotting process using pickle over a socket.
Re:Python Graph Gallery by malux85 on Monday October 16, 2017 @09:17AM (#15482932)
This is a cool idea. I would be open to working with you on this if you'd like to collaborate! (my contact in profile)
Re:Python Graph Gallery by xioxox on Monday October 16, 2017 @07:24AM (#15482429)
It's missing the Veusz multiplatform GUI plotting package and associated Python plotting library: https://veusz.github.io/ (I am the main author)

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.

Re:Python Graph Gallery by Dowwie on Monday October 16, 2017 @07:47AM (#15482529)
do you not know how to fork , update, and submit a PR? if not, now you do
Re:Python Graph Gallery by xioxox on Monday October 16, 2017 @07:52AM (#15482550)
If you had checked the repository, you would have seen that I had already done that. I posted here the link to add your list.
Re:Python Graph Gallery by Dowwie on Monday October 16, 2017 @07:54AM (#15482556)
Re:Python Graph Gallery by rplnt on Monday October 16, 2017 @09:24AM (#15482956)
I can vouch for pygal, if you can find what you need in the set it provides. I found it quite hard to customize some elements of it (ended up doing post-processing on the output SVG).
Re:Python Graph Gallery by eyeball on Monday October 16, 2017 @07:41AM (#15482502)
Re:Python Graph Gallery by edraferi on Monday October 16, 2017 @09:55AM (#15483194)
Very cool resource, thanks for putting it out there. Noticed a couple areas for improvement:

Contribution instructions: Per the contributors page, it looks like an email is the way to go [0]. It would be nice to be able to run the standard Github workflow, but the relevant repo seems abandoned [1]

Site performance: The site looks good and has strong content, but loads slowly & inconsistently. (could just be the hug of death). Chrome warns the page is loading unauthenticated resources. I suggest you look at using a static website deployed to a CDN. Github pages, Netlify [2], etc are reasonable ways to do that. If you want comments, you can do that on Github.

[0] https://python-graph-gallery.com/contributors/ [1] https://github.com/holtzy/The-Python-Graph-Gallery [2] https://www.netlify.com/

Re:Python Graph Gallery by plafl on Monday October 16, 2017 @05:58AM (#15482055)
This is great! I will bookmark it. I really like two things: first, the progression from simple to more complex figures. Matplotlib's documentation has the tendency to give very complicated examples. Second I think it's great it spans several libraries.
Re:Python Graph Gallery by fnord123 on Monday October 16, 2017 @09:36AM (#15483038)
bad charts link is broken.

Missing gantt charts. These are good for plotting logs in distributed systems so you can line up the events. Sadly you have to use hbox in matplotlib which isn't ideal (but it works).

Re:Python Graph Gallery by fnord123 on Wednesday October 18, 2017 @04:19AM (#15497638)
bad charts link was fixed.

Gantt charts can be done using the lollipop example: https://python-graph-gallery.com/184-lollipop-plot-with-2-gr...

Re:Python Graph Gallery by lincolnfrias on Tuesday October 17, 2017 @07:33AM (#15490103)
Awesome. Very useful resource.
Re:Python Graph Gallery by hathym on Monday October 16, 2017 @05:28AM (#15481920)
looks awesome, thank you
Re:Python Graph Gallery by omegote on Monday October 16, 2017 @04:44AM (#15481737)
Aaaand it's gone.
Re:Python Graph Gallery by krock on Monday October 16, 2017 @05:13AM (#15481845)
looks like it's back
Re:Python Graph Gallery by dagurp on Monday October 16, 2017 @06:04AM (#15482082)
And gone again
Re:Python Graph Gallery by Toenex on Monday October 16, 2017 @06:11AM (#15482114)
Back and yet gone too. HN effect in full effect.
Re:Python Graph Gallery by papey on Monday October 16, 2017 @05:16AM (#15481856)
Yep.