syntagmatic / parallel-coordinates

A d3-based parallel coordinates plot in canvas. This library is no longer actively developed.
http://syntagmatic.github.com/parallel-coordinates/
Other
511 stars 211 forks source link

Add brushstart event. #301

Closed jmgelman closed 8 years ago

jmgelman commented 8 years ago

Needed access to the brushstart event. Tried to implement it the same way brushend was implemented in b80a8b9.

BroHammie commented 8 years ago

@jmgelman, you will need to edit and commit your changes to 1D and 1D.multi files. Please make sure you run make before you commit. Also, out of curiosity what would you be doing in a brushstart event?

jmgelman commented 8 years ago

@mcwillso

Sorry about that. I think I made the necessary changes. Please let me know if I'm missing anything else.

As for our need for the brushstart event...

We have a data visualization application (primarily written in Python) that uses the Qt framework for its GUI. We've primarily used Vtk for data visualization, but wanted to experiment with HTML5-based data visualizations, and saw parallel coordinate plotting as a good chance to do that.

So we're using the QtWebKit class in Python to create a "web view" window where we display a parallel coordinate plot using d3/d3.parcoords.js. We do all of the data manipulation and processing on the model side, which is written in Python. We then interact with the parallel coordinate plot via the links provided in the QtWebKit class. So basically, we send data to d3.parcoords to make the plot, and we listen for events occurring on the plot side so we can respond to them accordingly in the model.

Also in our application, we have an n-dimensional (ND) scatter plot module, which is pretty mature. It uses Vtk. We're trying to enable synchronous interaction between the ND plot and the PC plot. So, in the example of brushing, you could have an ND plot and PC plot appear side-by-side, and brush one plot type and have it reflected in the other, allowing for two interactive representations of the same data. But because of some of the complex brushing rules we've developed for the ND plot, we need the brushstart event in the PC plot to be able to keep everything sync'd up.

So far we've been very impressed with the power of d3 and d3.parcoords.js. And we'd like to be able to contribute where we can.