From 2d8a575344cb3be1f3ebff465c21c8d70a81f960 Mon Sep 17 00:00:00 2001 From: Goutte Date: Tue, 5 Dec 2017 12:06:03 +0100 Subject: [PATCH] Make the Y-Axis of time series dynamic --- CHANGELOG.md | 11 ++++++++--- web/static/js/swapp.js | 8 ++++++++ web/static/js/swapp.ls | 4 +++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6cf3bee..70c1f47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,7 @@ ## Nicolas - [ ] séries temporelles en échelle log ou linéaire -- [ ] quant on zoome modifier l'échelle en Y afin qu'elle s'adapte aux valeurs maximales de l'intervalle du zoom - [ ] permettre à l'utilisateur de choisir inner heliosphere (jusqu'à mars) ou outer heliosphere (jusqu'à saturne) pour la visualisation des éphémérides planétaires -- [ ] rajouter uranus et neptune comme planètes cibles - [ ] rajouter MAVEN, New Horizons, Cassini, Galileo, ExoMars comme spacecraft cible - [ ] prévoir la possibilité à l'utilisateur d'afficher le temps en Day Of Year - [ ] modifier le bandeau vertical d'affichage des choix utilisateurs pour qu'il soit plus petit (en particulier les champs paramètres) @@ -23,13 +21,20 @@ - [ ] Add a README to the download tarball - [ ] Set the log level to _error_ in production (see `web/run.py`) - [ ] CRON statements to call the cache cleanup and warmup -- [ ] Give the future data another color - [ ] Rework the images of Rosetta and Juno - [ ] Enable p67 +- [ ] Enable Uranus +- [ ] Enable Neptune - [ ] Find a way to handle the huge amount of data files for Earth +## 1.0.0-rc7 + +- [ ] Give the future data another color +- [x] Make the Y-Axis of time series dynamic (at the expense of animations) + + ## 1.0.0-rc6 - [x] Re-lock Earth until we have better support diff --git a/web/static/js/swapp.js b/web/static/js/swapp.js index 0c6bff8..0e64863 100644 --- a/web/static/js/swapp.js +++ b/web/static/js/swapp.js @@ -657,6 +657,14 @@ stopDate = maxDate; } this.xScale.domain([startDate, stopDate]); + this.yScale.domain(d3.extent(this.data, function(d){ + var ref$; + if (startDate <= (ref$ = d.x) && ref$ <= stopDate) { + return d.y; + } else { + return 0; + } + })); return this.applyZoom(); }; TimeSeries.prototype.resetZoom = function(){ diff --git a/web/static/js/swapp.ls b/web/static/js/swapp.ls index deb6f91..65cd7a6 100644 --- a/web/static/js/swapp.ls +++ b/web/static/js/swapp.ls @@ -8,7 +8,7 @@ # $ lsc --watch --compile swapp.ls # All the "javascript" code is in this file, except for inline scripts in -# templates, such as `home.html.jinja2`. +# templates, such as in `home.html.jinja2`. # Note: We use Promises and ES6 whenever relevant. # You also WILL NEED d3js v4 documentation : https://d3js.org/ @@ -368,6 +368,7 @@ export class TimeSeries console.info "Initializing plot of #{@}…" # pre-compute extents for performance when zooming + # those are final and always hold the biggest extent @xDataExtent = d3.extent(@data, (d) -> d.x) @yDataExtent = d3.extent(@data, (d) -> d.y) if @options['started_at'] then @xDataExtent[0] = @options['started_at'] @@ -589,6 +590,7 @@ export class TimeSeries if startDate < minDate then startDate = minDate if stopDate > maxDate then stopDate = maxDate @xScale.domain([startDate, stopDate]) + @yScale.domain(d3.extent(@data, (d) -> if startDate <= d.x <= stopDate then d.y else 0)) @applyZoom() resetZoom: -> -- libgit2 0.21.2