Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Sankey charts #282

Closed
gramster opened this issue Feb 24, 2016 · 7 comments
Closed

Add support for Sankey charts #282

gramster opened this issue Feb 24, 2016 · 7 comments
Assignees
Labels
feature something new

Comments

@gramster
Copy link

What it says

@jackparmer
Copy link
Contributor

@gramster We've had a few requests for this lately.
Do you mind filling out this form so I can send you an email?
https://plot.ly/products/enterprise/get-in-touch/

@jackparmer
Copy link
Contributor

It probably would not be too difficult to integrate this:
https://github.com/d3/d3-plugins/tree/master/sankey

The key part would be defining the JSON spec for Sankey diagrams (http://help.plot.ly/json-chart-schema/). Here's the matplotlib API:
http://matplotlib.org/api/sankey_api.html

@etpinard etpinard added the feature something new label Jul 8, 2016
@etpinard
Copy link
Contributor

etpinard commented Feb 8, 2017

assigning @monfera 🎉

@monfera
Copy link
Contributor

monfera commented Feb 24, 2017

A summary of hard requirements toward the initial implementation:

  • unidirectional DAG (no cycles initially)
  • linear layout; option for horizontal or vertical flow orientation
  • works on mobile
  • optionally deactivated default hover tooltip with basic data and minimal styling
  • plotly_hover event raised on hover to allow custom tooltips or other interactions
  • text labeling for nodes
  • an SVG renderer with decent scenegraph and CSS class names to enable some styling above and beyond the plotly.js Sankey attribute options (class names and structure will be subject to implementation changes though as it's not part of the API)
  • ability to filter some of the flows, i.e. not graying out or turning invisible, but to relayout by freeing up their previously occupied beam size (for example, by rerendering the plot with just the restated data as specified by the API caller via e.g. Plotly.restyle)

In addition, we're not currently committing to, but planning to have

  • breakdown of flows (e.g. by a dimension or to flow contributor items)
  • moving nodes around perpendicularly to the overall flow (e.g. up/down on a horizontal layout)
  • coloring options for nodes, flows and perhaps subflows (not yet specified)

@monfera
Copy link
Contributor

monfera commented Mar 1, 2017

@etpinard now equipped with stable sorting parallel links, it's important to style the currently hovered line (don't mind the temporary tooltip now) as there may be partial occlusion. I could use some guidance on the approach, e.g. should I create .sankeyLink:hover CSS styling, or should it be done in CSS, and should there be some configuration attributes for it? Or pls. point me to a suitable precedent.
sankey hover

@etpinard
Copy link
Contributor

This was completed in #1591 released in 1.27.0

@jackparmer
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature something new
Projects
None yet
Development

No branches or pull requests

4 participants