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

Upset plot viz #35

Open
vincerubinetti opened this issue Oct 15, 2024 · 4 comments
Open

Upset plot viz #35

vincerubinetti opened this issue Oct 15, 2024 · 4 comments
Labels
frontend Frontend-related

Comments

@vincerubinetti
Copy link
Collaborator

vincerubinetti commented Oct 15, 2024

It seems like upset plots are uncommon or specific enough that the general purpose JavaScript charting libraries -- e.g. Plotly.js, echarts, etc -- don't seem to cover them. we may have to use this specific library: https://github.com/upsetjs/upsetjs

Please research the library options and discuss them here before starting implementation. If at all possible, I want to use a library that can handle all the general plots we may need, including: bar chart, line chart, upset plot, sunburst plot, heatmap (see the other issues in this repo).

More specific notes/guidelines:

  • Should be SVG-based, not canvas-based
  • Don't necessarily need exactly the same feature set as the 1.0 visualization. Layout can be slightly different, can have more/less/different customization options, etc.
  • Don't implement a download button yet.

See the following comment for guidelines on implementation and general architecture:
#32 (comment)

@Sproff
Copy link
Contributor

Sproff commented Oct 26, 2024

Sounds good.
Upsetjs doesn't seem to be maintained anymore.

We can go with Vega-Lite or D3 if we prefer a deep dive into customization with a single library.
What are your thoughts? @vincerubinetti

@vincerubinetti
Copy link
Collaborator Author

I'd like to use a high level language, and avoid using D3 if possible. I'd be good with vega-lite. I see that there are some (unofficial) examples of using it to create upset plots. Echarts or plotly would also be fine options if they can be configured/combined to produce the hybrid chart that is an upset plot.

This answer applies to #36 and #37 as well.

@Sproff
Copy link
Contributor

Sproff commented Nov 1, 2024

Alright, that works too.
So what's your final call for this? @vincerubinetti

@vincerubinetti
Copy link
Collaborator Author

A final decision requires some experimentation. But I would start with vega-lite. I think that should be good enough for our use cases, unless we run into limitations or other issues with it.

Also make sure to use the SVG renderer for vega. From a quick google it seems like the canvas renderer is the default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
frontend Frontend-related
Projects
None yet
Development

No branches or pull requests

2 participants