Code Monkey home page Code Monkey logo

Comments (5)

josdejong avatar josdejong commented on July 17, 2024

Well, there is no detailed roadmap. We just do maintenance/bugfixes for the chap-links-library, and add the features that the old Timeline had one by one to the new Timeline in vis.js. The new version has a much better architecture which allows to grow it further. The old Graph (line chart) will be merged in the new Timeline, this is now just another type of data to display on a time line.

If the only thing that you miss on the new Timeline is clustering, it may be the easy/doable to create this functionality yourself and add that to the new Timeline. You can prepare your data via some grouping/clustering function for different zoom levels (ie. group data together in clusters when zoomed out). Then attach an event listener to the rangechange event of the Timeline, calculate the current zoom level, and when the zoom level changed, replace the currently displayed dataset for the one corresponding to the new zoom level.

from vis.

Gillingham avatar Gillingham commented on July 17, 2024

If it's worth anything the clustering feature is something I could really use, having to look at alternatives again because of it not existing.

from vis.

josdejong avatar josdejong commented on July 17, 2024

If it's worth anything the clustering feature is something I could really use, having to look at alternatives again because of it not existing.

same for us. But don't expect it within a few months. Unless you implement it right away and make a pull request to share it with us ;)

from vis.

oaubert avatar oaubert commented on July 17, 2024

I am looking more seriously into this. I have a question regarding the integration of such a feature. Given that the code is basically the same as the existing Stack component (since we need to detect overlapping items, and represent them appropriately), what would be the most appropriate/generic way to implement clustering? Should we try to leverage the Stack.js code to handle both stacking and clustering, or should we leave the Stacking alone and do the clustering at the data level?

Based on your initial suggestion, I have the idea of providing a "transform" property, consisting in a list of operations that will handle transformations to the data based on timeline parameters such as zoom level and width. We can bundle standard transforms such as clustering, filtering... It can be implemented at the DataSet level, but then I need to find a way to pass view-specific parameters (timeline zoom/width for instance) so that the transforms are done according to the view.
Any feelings/comments about this?

from vis.

josdejong avatar josdejong commented on July 17, 2024

There are a couple of discussions on the chap-links-library discussing various clustering solutions. I think there are different ways, and in the end we may up supporting a couple of them. Few ideas:

  • clustering on a data level, purely taking into account timestamps and a given time window.
  • not doing clustering by yourself, but offering an easy interface for a developer to define different datasets for different zoomlevels.
  • Clustering by really reckoning with the actual size of items on screen, making everything fit exactly in the visible window. This will require integration with Stack.js.

So, depending on your needs, you could start implementing one of these.

from vis.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.