Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Try uPlot.js #33

Closed
leeoniya opened this issue Oct 27, 2019 · 17 comments
Closed

Try uPlot.js #33

leeoniya opened this issue Oct 27, 2019 · 17 comments

Comments

@leeoniya
Copy link
Owner

i'll tag people here whose issues & use-cases in other charting libs could be good opportunities to try uPlot.

@leeoniya
Copy link
Owner Author

cc @arwenpi via chartjs/Chart.js#6611

uPlot should be quite a bit faster for data streaming. demo: https://leeoniya.github.io/uPlot/demos/stream-data.html

@leeoniya leeoniya pinned this issue Oct 27, 2019
@leeoniya
Copy link
Owner Author

leeoniya commented Dec 13, 2019

@leeoniya
Copy link
Owner Author

leeoniya commented Dec 16, 2019

cc @BatelAyala via highcharts/highcharts#12602, highcharts/highcharts#12662

here is your example using uPlot: https://jsfiddle.net/v4xuohk6/

if you need to plot 500,000 points, uPlot will easily handle this, too.

@leeoniya
Copy link
Owner Author

@leeoniya
Copy link
Owner Author

leeoniya commented Dec 21, 2019

cc @ptimson via amcharts/amcharts4#1965

here is your example using uPlot: https://jsfiddle.net/mb5rpzn7/

the chart completes rendering in ~85ms on my machine.

@leeoniya
Copy link
Owner Author

cc @ceefit via patternfly/patternfly-react#3429

uPlot should easily handle a 200 data point stream (it does quite well with thousands):

https://leeoniya.github.io/uPlot/demos/stream-data.html

@leeoniya
Copy link
Owner Author

cc @ben-spiller via danvk/dygraphs#355

legend series toggle is the default behavior in uPlot

@leeoniya leeoniya unpinned this issue Jan 30, 2020
@leeoniya
Copy link
Owner Author

leeoniya commented Apr 21, 2020

cc @lab-w dygraphs is no longer maintained, perhaps uPlot can work for you.

maybe of interest to you, as well:

netdata/dashboard#66

@noobymcnoob
Copy link

noobymcnoob commented May 6, 2020 via email

@leeoniya
Copy link
Owner Author

leeoniya commented May 6, 2020

i think their answer is to downsample on the server. from the plotly maintainer: https://news.ycombinator.com/item?id=23045956.

i'll add plotly to the benchmark later today based on [1], since it's pretty widely used. some preliminary numbers using box plots: #179

[1] https://plotly.com/javascript/line-charts/#basic-line-plot

@noobymcnoob
Copy link

noobymcnoob commented May 6, 2020 via email

@leeoniya
Copy link
Owner Author

leeoniya commented May 6, 2020

Minor suggestion: uPlot is tough to search for on the web.

Googling uPlot yields the first 3 proper matches on the first page for me.

Name is not unique enough?

that ship has sailed...and i'm happy with the name :)

@noobymcnoob
Copy link

noobymcnoob commented May 6, 2020 via email

@leeoniya
Copy link
Owner Author

leeoniya commented May 7, 2020

Plotly.js (scattergl) bench:

https://leeoniya.github.io/uPlot/bench/Plotly.js.html

@leeoniya
Copy link
Owner Author

cc @nagabhushant (via amcharts/amcharts4#2475)

amcharts has very poor performance. you should try something faster:

https://github.com/leeoniya/uPlot#performance

your examples should render in < 200ms with uPlot.

@leeoniya
Copy link
Owner Author

cc @runfaj (via amcharts/amcharts4#2720).

In this 48 chart page, v3 loads on average about 13 seconds. v4 always loads about 3x that time at 35 seconds on average.

even 13s is an absurd amount of time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants