5 ms·
Unfortunately, I have to use Google Analytics and Google Ads at work every day, and these UIs have absolutely terrible performance :( A small part of the probl
by leeoniya 7y ago
Unfortunately, I have to use Google Analytics and Google Ads at work every day, and these UIs have absolutely terrible performance :(
A small part of the problem is drawing the trend charts. So I decided to make uPlot [1] to see what was really possible.
[1] https://github.com/leeoniya/uPlot https://github.com/leeoniya/uPlot
- hardwaresofton 7y agoHopefully the upvotes and being on the front page is enough, but if not just want to say props, this is amazing. Already had it saved in my bookmarks glad to see it pop up again :)
- leeoniya 7y agothanks!
- contravariant 7y agoHonestly the title doesn't do it justice. For a plotting tool it's not an impossible task, but making a webpage this responsive is incredibly hard, so well done there.
- leeoniya 7y agoit's an understatement for sure :) a lot of time is spent on just DOM layout and JITing the JS, which get amortized with huge datasets. the 166k bench doesnt take any longer.
- doublesCs 7y agoHi, I'm very interested in this. I've been using dask/plotly for a side project but it's just too slow. If you know dask, do you think you could discuss which features of dask your project has and doesn't have?
- jparmer 7y agoHere's a Dash app that use Dask & Datashader for fast aggregations on +40M rows: https://dash-gallery.plotly.host/dash-world-cell-towers https://dash-gallery.plotly.host/dash-world-cell-towers The source code, which can be used as a Dash + Dask boilerplate, is here: https://github.com/plotly/dash-world-cell-towers https://github.com/plotly/dash-world-cell-towers Feel free to ask questions at community.plot.ly
- vamega 7y agoI don't think that actually plots the 40M points, just aggregates them in Python and plots a small section of that data on the website?
- kylebarron 7y agoI believe so. An optimization of Datashader is that it _doesn't_ plot all the points, but rather optimizes which points actually influence pixel values.
- gesman 7y agoIt plots cell towers in the middle of my residential neighborhood where i absolutely sure there aren't any
- hardlianotion 7y agoThat's rather beautiful.
- simmers 7y agoKudos for directing folks to other projects if uPlot isn't fast enough for them. Every developer should take the time to write out appropriate and inappropriate use-cases on the readme.
- adeelk93 7y agoI like this a lot! Reminds me of dygraphs, and then I saw it in that in the acknowledgements :)
- jedberg 7y agoThis is fantastic and may solve a real problem for me. Thank you so much, and thank you for the MIT license!
- maxwellg 7y agoThe 166k benchmark is ridiculously snappy. Could you shave off a few more ms by inlining the JSON as a data block?
- leeoniya 7y agoprobably, but something about diminishing returns...:p
- chrissnell 7y agoThis is awesome. I wrote some software to pull readings off my weather station and stream them to the browser. The plotting library that I use is pretty awful. Besides being slow, it's constantly hosing up the numbers on the y-axis. I want to give uPlot a shot. Station: https://carlisleweather.com https://carlisleweather.com Software: https://github.com/chrissnell/gopherwx https://github.com/chrissnell/gopherwx
- jrumbut 7y agoThis is just incredible.
- victorthehuman 7y agoThis is a test reply please ignore it, it will be deleted in a few minutes.