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

visualize LightCurve #3

Open
4 tasks
volodymyrss opened this issue Jan 17, 2024 · 6 comments
Open
4 tasks

visualize LightCurve #3

volodymyrss opened this issue Jan 17, 2024 · 6 comments
Assignees

Comments

@volodymyrss
Copy link
Contributor

volodymyrss commented Jan 17, 2024

example in bokeh python is here and there is an equivalent JS api

http://www.flotcharts.org/flot/examples/series-errorbars/index.html

no need to go in too much detail, but to give an example of what we need, see
example of usage is here and code is here

@motame can advise which parts are needed.

goal is to show it in a simple example html like aladinlite
next is to show it in galaxy

  • add controls for switching on and off log scale for each axis separately
  • add zoom by selecting region, and also by wheel
  • allow selection of columns for the axes (both value and errorbar), using reasonable default
  • make smaller black points, and maybe other way to trigger hover
@francoismg
Copy link
Contributor

francoismg commented Jan 29, 2024

Screenshot 2024-01-29 at 10 08 38

First draft of light curve visualization with d3

The graph is created dynamically with a subset of data from spi_acs_FULL_SKY_lc.fits from mohamed heavens project, tooltip on the right is updated when pointer hovers a data point

TODO :

  • embed tooltip inside the graph and make it appear near chosen data point
  • add checkboxes to hide/show x and y error bars and line
  • make axis more readable
  • enhance design of the whole graph (axis legends, title, ......)
  • time conversion ?
  • zoom ?
  • overview window ?

Let me know if it seems ok for you and if there's specific things to add

The code is in graph.js in /prototypes/d3/js/graph.js, I tested a lot of things so the code is quite messy right now and some part of it will be handled by lightCurveDataHelper from the fits library afterwards

@volodymyrss
Copy link
Contributor Author

could you make it a bit more like this, wider range
image

@francoismg
Copy link
Contributor

francoismg commented Feb 6, 2024

Screenshot 2024-02-06 at 06 38 19

TODO as discussed in meeting :

  • Add the possibility to log scale both axis independently (seems good just need to test more)
  • Add zoom and panning on scroll and by region (seems good except for one bug)
  • Add the possibility to choose what data will be plotted on each axis with a specific scale

Axis and data redrawn seems to work, just need to test on a data range that makes more sense for log scale in order to be sure that everything is displayed correctly

Zoom and panning seems to work but there's still one small bug (probably related to the translate on svg creation) that needs to be corrected

@francoismg
Copy link
Contributor

Possibility to choose the data that will be displayed on each axis and the scale of each axis is working now, still a few bugs to check but seems to be working overall

@volodymyrss
Copy link
Contributor Author

Possibility to choose the data that will be displayed on each axis and the scale of each axis is working now, still a few bugs to check but seems to be working overall

Cool, could you put a demo somewhere, maybe in a gh-pages branch in this repo?

@francoismg
Copy link
Contributor

Possibility to choose the data that will be displayed on each axis and the scale of each axis is working now, still a few bugs to check but seems to be working overall

Cool, could you put a demo somewhere, maybe in a gh-pages branch in this repo?

ok I will try the github pages no problem, will just move the features to the main graph so it makes more sense

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

No branches or pull requests

2 participants