obshtestvo / sledi-parlamenta

Надежден инструмент за справки и анализ на парламентарната активност
http://parliament.obshtestvo.bg/
The Unlicense
13 stars 3 forks source link

Frontend графики - highcharts & други #11

Open antitoxic opened 11 years ago

antitoxic commented 11 years ago

Когато тръгне сайта ще имаме нужда да показваме графики. Pie-charts и тн.

Ако може някой да се заеме с базов модулен код за тях? Да го имаме готов.

Krastanov commented 11 years ago

Това е едно от малкото неща в което имам "професионален" опит (физик съм и за разлика от повечето от екипа не съм авторитет по уеб-програмиране).

Силно препоръчваме vegajs. Това е библиотека предоставяща "grammar of graphics" интерфейс за d3js. Предимства:

Ако не сте чували за "grammar of graphics" погледнете ggplot2 библиотеката за езика R.

antitoxic commented 11 years ago

Vega и d3 не знам какво предлагат out-of-the-box като интеракция, но по примерите на vegajs (http://trifacta.github.io/vega/editor/index.html?spec=wordcloud) няма особена интеракция.

d3js ги знам и имат страхотни неща. Ако има какво да покажем с техните графики ще покажем.

highchart просто предлагат от раз повече стандартни (barchart, piechart) интерактивни диаграми, но пък не може да се правят много custom-изации. Ето малко примери: http://www.highcharts.com/demo/line-ajax http://www.highcharts.com/demo/dynamic-update http://www.highcharts.com/demo/combo-multi-axes

Това http://www.parlamentaren-kontrol.com/forcegraph_all.html е много тежка диаграма. Бразър ми забива вкъщи. Яко е самото клъстериране, но предполагам може да се изчислят клъстърите на сървъра и само да се плотират точките с js.

Krastanov commented 11 years ago

Ако става дума за tooltips и hoverover events мисля че vegajs ги има, но да, като цяло не е предназначена за интерактивни графики като d3js (може да се мисли за vega като json frontend за d3js). Но не очаквам в редките случаи когато е необходимо нещо с много интерактивност да намерим задоволителна библиотека която да не е d3js. За всички останали графики очаквам vegajs да е достатъчна.

Относно типовете графики които са поддържани от раз може да се види тук http://trifacta.github.io/vega/editor/ Ако трябват персонализации те се дописват използвайки d3js. Мисля че поддържа повечето неща от highcharts, но трябва да прочета повече относно highcharts за да ги сравня честно.

Относно интерактивна визуализация на информация с много измерения и със слайдери за интервалите които да се включват от тези измерения може да ползваме crossfilterjs, която също е вързана към d3js. Но личното ми мнение е че ако ни се наложи да пишем такива визуализации, то вече сме направили грешка в дизайна (смятам че визуализациите трябва да са възможно по-прости и ясни.)

Както и да е, едва ли мога да дам смислени аргументи преди да почнем да приготвяме реални графики.