2019年4月19日金曜日

様々なJavaScriptのグラフ/チャート描画ライブラリの表示テストページを作った

JavaScriptのグラフ/チャート描画ライブラリの機能比較とまとめというページを作ったので、 そこで比較したライブラリの実装をサクッと確認できるページを作りました。 コードは右クリックから「ページのソースを表示」で見やすいようにしてある。

表示テストのサンプルはどれも多数のカラムを持つLineChartです。 C3.jsの表示例は以下。

01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798990123456789100123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899data0data1data2data3data4data5data6data7data8data9


他のライブラリも実装が面倒ではない範囲でなるべく同じ表示になるようにしています。 またカラムを多めにする事で、凡例の表示テストも兼ねている。 簡易的なものだけど描画速度も計測できるようにもしてある。


実装を確認できるライブラリのリストは以下。

このリストを使ってデータ数1e2〜1e7のベンチマークをしてみました (下図)。 JavaScript/CSSはあらかじめキャッシュされている状態を想定してます。 数回しか実行してない簡易的なベンチマークなので参考程度に留めてください。

data num1e21e31e41e51e61e7rendering speed (ms)-2000020004000600080001000012000140001600018000200002200024000260001e21e31e41e51e61e7EChartsChartistChart.jsGoogle ChartsC3.jsPlotly.jsVis.jsRickshaw


上記の比較では、データ数を増やしたらすべて表示するようにしています。 表示数を調整しやすいライブラリの場合、部分的にしか表示しない事でかなりレンダリング速度を向上できます。 同様の理由により、まず部分的なデータでレンダリングして、後からバックグラウンドで更新しやすい仕組みがあると良いと思います。


何となく作ったページですが、ライブラリごとに微妙に異なるデータの扱い方や、初期状態でどれくらい高機能なのかをすぐに比較できて、割と便利かも。

0 件のコメント: