Mie unul imi place Highcharts, poate si pentruc a este integrat in aplicatie si l-am personalizat cum am vrut si dupa gust.
Ma intereseaza performanta, in sensul sa afiseze multe puncte fara sa faca Google Chrome sa sughita si bineinteles functionalitati cum ar fi axe multiple, labe;-uri, daca pot sa adaug un tooltip cusotm cum ar fi, sa ascund toate seriile de timp de pe un grafic cu un buton.
Bonus points pt cat de bine se integreaza cu in Primefaces.
Pana acum amCharts arata destul de bine, are multe tipuri de grafice, api usor de folosit. D3.js extrem de flexibil, dar cam complicat de lucrat cu el.
Îți poți scrie propriul chart în canvas, după dacă chiar ai nevoie de ceva translatie, animație sau să lucrezi direct cu obiecte în loc de desen atunci d3.js ar fi cel mai practic.
@sorin19, am impresia ca de la chart.js s-a plecat. Cand am venit eu pe proiect, s-a trecut la Highcharts.
Poate ne intoarcem la el
Chiar acum testez plotly. Am reusit sa plotez datele de pe un json.
<p>Hello world! This is HTML5 Boilerplate.</p>
<div id='myDiv'><!-- Plotly chart will be drawn inside this DIV --></div>
<script>
let url = "http://localhost:8080/chart" // a json endpoint
let xl = []
let yl = []
Plotly.d3.json(url, function(figure){
let data = figure
for (var i=0; i< data.length; i++) {
xl.push(data[i].unixTime)
yl.push(data[i].cases)
}
console.log(xl)
let trace = {
x: xl,
y: yl
}
Plotly.plot(document.getElementById("myDiv"), [trace]); }) // second argument must be an array
@isti37, prea complex pentru use case-ul de care am nevoie.
E decent. Cerintele mele nu erau prea complexe pe partea de afisare a datelor. Au documentatie destul de ok si niste plugin-uri (eu folosesc labels). Mi-a luat o ora si ceva sa ma decid asupra unei librarii, sa aleg chart si sa scot primul grafic (datele le aveam deja pregatite, doar le-am pus in formatul de care are el nevoie). Zic asta ca sa stii la ce sa te astepti daca vrei sa il incerci, adica sa nu fi reticent crezand ca o sa iti ia jumatate de zi sa-ti faci o parere.
E posibil ca chart.js asta sa fie o continuare a lui grafs.js, o chestie facuta de cei de la imperavi.com, dar pe care nu am mai gasit-o la ei pe site (stiam de ea pt ca am folosit-o acum vreo 5 ani, ultima data cand am avut nevoie de grafice). Si din ce-mi asuc aminte e destul de asemanator.
Colegii mei au facut 3 prototipuri cu Chartjs, Plotly si amCharts. Toate ne-au placut.
amCharts - multe functionalitati, dar randa greu punctele de pe grafic, asa ca a fost eliminat
Au mai ramas Plotly si ChartJs. In final am ales ChartsJs.
Din punct de vedere al performatei, Plotly si ChartJs sunt apropae identice in timpi de randare a punctelor cu diferente de sub o secunda. Insa in final am ales sa merge cu ChartJs pentru ca Plotly are niste bug-uri legate de legende care sunt deschise de prin 2015 si nu au fost rezolvate pana acum,
Acum au fost implementate lucrurile de baza si lucram la finisaje
Dificultatea cea mare a fost si inca este sa facem sa semene cat de mult se poate cu chart-urile Highcharts. Cu mici diferente evident.
Si ca feedback final, am luat decizia sa integram Plotly in aplicatie.
Nu stiam la momentul acela ca mai erau si altele luate la ochi