rust-ml/discussion

[data-viz] What do we want to build ?

davidB opened this issue · 3 comments

Data visualization (data-viz) is used for exploration, explanation, illustration, ...

This a place to discuss:

  • what we want to build
  • what we have
  • what we need
  • what are the constraints
    • inputs (csv, dataframe (arrow?), array (ndarray ?),...)
    • output (jupyter notebook, console, file, web browser, ...)
    • ...

possibly relevant: https://github.com/nannou-org/nannou for interactive simulations. don't think it would take much work to e.g. plug in ndarray over there.

Hi All,
I would like to express my thoughts which I have for the data-viz topic. I come from python and have used visualisations in matplotlib (static images), bokeh/plotly (web-based), pyqtgraph (qt-based desktop gui). What I observe are the following points:

  • people always want to play with the visualisations specially after getting used to latest libraries.
  • there is always an expectation to have the plot or its data available for export so that it can be used somewhere else.
  • I am currently also following the Apache Arrow project. It would be great if we could use that.
  • Also, in some big data cases, we have already seen rust being used for rendering a generated image on the browser.

Do people have some example. I know two examples like plotlib, Gust, Plotter. I would really like to have something like Vega, Matplotlib as the go to crate within rust in the future.

I am really excited to work on this.

Hi All,

This the current list of what I found:

  • plotters - Another Plotting Library in Rust generate static images (raster or vector) on file or into html canvas
  • plotka lets you easily broadcast your data via websockets. It can also host your JS client so that you can plot your data in a browser.
  • gnuplot rust gnuplot controller to generate static images

my own unpublished (very wip / experimental) crates evcxr_displayers, target to display data

  • as html table or as vega-lite graph (wip)
  • inside browser (create an html page) or jupyter

I'll try to publish a crate asap to collect feedback,... (in this context I made a PR to generate friendlier builder for vega-lite API via derive_builder, should be part of next release)