kasts
3 days ago
I’m not convinced GPU acceleration is a meaningful advantage for most charting use cases. Most dashboards don’t render enough data for it to matter. Once a chart is dense enough for rendering to become the bottleneck, it normally is already be too crowded to be meaningful. Zooming can justify supporting larger datasets, but sampling/viewport culling and level of detail often avoid drawing unnecessary points...
Evidlo
3 days ago
I constantly have to work around the slowness of matplotlib when creating animated sequences for my scientific work (even with the Agg back end)
FuckButtons
3 days ago
I too have felt that pain. Funcanimation is passible for a few datapoints but it really struggles with anything meaningful in real time.
apetuskey
3 days ago
How many points are you working with usually?
all2
3 days ago
Not GP, but my datasets weigh in at around 2-20GB depending.
masenf
3 days ago
I think meaningful is in the eye of the beholder. The library is designed such that the trace buffers are directly used as inputs to the WebGL2 drawing contexts to avoid unnecessary copying throughout the stack, which does make a difference when rendering on mobile and embedded devices with limited CPU but often having GPU resources available.
apetuskey
3 days ago
It depends on how much data you are planning on showing, but as you can see from the benchmarks its also more performant than other python charting libs for small data.
We also built this library for extreme customization with CSS/Tailwind support so rendering large amounts of data is an important but not the only advantage.
mamcx
3 days ago
The good reason for worry about it is the same for data grid, list, scrolls and any other UI component that loads arbitrary data.
All UI, honestly, is only meaningful in what the screen size and our vision permit. END.
UNFORTUNATELY, you can't avoid that a user is writing "a___" and the source data has millions of things that start with `a` and all the others are dozens.
So, you can end with a massive influx of data, and sure the user see that big mess and wanna dial in, but in the meantime is nice if the UI not die in the process.
cycomanic
3 days ago
I can give you a prime example where you want to render all the data and quickly, oscilloscopes. It's quite common that you fetch traces with millions of samples, but then want to zoom into specific regions. There are lots of similar applications in experimental signal processing, where you want to have large data sets, but sampling easily will hide details that you want to see (unless you already know what exactly your data looks like).
Eridrus
3 days ago
Managing sampling is itself not totally trivial. Much easier from a DevX perspective to just have a library that can render all the datapoints.
NortySpock
3 days ago
Why settle for sampling when you can have the whole dataset?
The spiral pattern is an excellent example. "Sure it looks like this when you zoom out, but when you zoom in, you can see the finer structure of the points..."
cozzyd
3 days ago
don't you just love having a point cloud so dense that it's completely unreadable?
it seems a lot of people don't know about histograms...
formerly_proven
3 days ago
There are some niche charting applications which are offloaded to FPGAs and even ASICs.
genxy
3 days ago
Ok, we won't convince you and we can move on.
moralestapia
3 days ago
Feel free to not use it, then.
You don't have to justify your decision to people here, literally just move on with your life and forget about it.
kasts
3 days ago
I’m not trying to justify whether I'd personally use it, I was simply raising the question because the tradeoffs are interesting, and the replies, including Evidlo’s, have already taught me something.
I tried the library before commenting, it’s a cool project. The performance improvements at larger scales I've found are real. I was mainly just trying to have a conversation to learn where we all learn!
“Just move on” seems like a curious response on a discussion forum, though :)
moralestapia
3 days ago
Oh, no worries. I thought you were another one of those naysayers, of which this site has far too many already. Hehe.
Btw, English isn't my first language, so I still struggle with it sometimes. Could you point me to the part of your comment where you asked that question? I can't seem to find it. Thanks!
kasts
3 days ago
No worries!
It was not a explicit question where its easy to point at like a question mark (?) but I'd find any comment on a forum like environment to be trying to contribute to a discussion as a whole, where we can all share thoughts and counter thoughts constructively.
Anywhoo, XY seems like a cool lib. If you can find the usecase where you actually can leverage the power you should! Good job on Reflex.