Giter Site home page Giter Site logo

Comments (3)

RalphSteinhagen avatar RalphSteinhagen commented on May 23, 2024

The following examples may help/illustrate your use-case:
RollingBufferSample
RollingBufferSortedTreeSample

In particular there are several DataSet implementations that implement (timed) circular buffers (or trees, if data arrives/is added out-of-order), e.g.:
CircularDoubleErrorDataSet
FifoDoubleErrorDataSet:
LimitedIndexedTreeDataSet

Here 'timed' means that the maximum number of samples, as well as the maximum distance between first and last data points, is limited (ie. points are being dropped if the maximum queue size of 100k points and/or x-range of 10 minutes is exceeded).

Your particular use-case of 10 minutes of burst data with 1kHz sampling rates (<->100k data points) should be possible. Please note that the maximum update rate should ideally be throttled to <=25 Hz (ie. adding 80 or more samples per 40 ms update interval, and notify/trigger redraws only at max 25 Hz). You may add more data at any rate, but the internal JavaFX thread won't update at higher rates.

Enjoy!

from chart-fx.

soloman817 avatar soloman817 commented on May 23, 2024

@RalphSteinhagen great example! checking that

from chart-fx.

soloman817 avatar soloman817 commented on May 23, 2024

@RalphSteinhagen Thanks for point me out the wonderful example, I've made my first version. Here are some findings:

  1. CircularDoubleErrorDataSet doesn't support evicting data by time, and for x axis, no positive or negative error.

  2. LimitedIndexedTreeDataSet has queue size and time duration expiration feature. One thing is, while evicting an expired element, it loops over all element to calculate the range: https://github.com/GSI-CS-CO/chart-fx/blob/master/chartfx-dataset/src/main/java/de/gsi/dataset/spi/LimitedIndexedTreeDataSet.java#L135 this looks not very efficient. Another thing is, although it supports x error and y error, but you cannot distinct positive or negative error. I extended a class and made some override to support negative x error, but still need to fix some issue, because the range calculation still considered negative error.

But overall, the system is well designed, very good.

from chart-fx.

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.