Mam dziesiątki tysięcy (być może setki tysięcy) punktów, które muszę opracować w Highcharts. Czy istnieje sposób, w jaki mogę zgrupować dane na serwerze, więc będzie on pokazywał mniej niż 1000 punktów, ale w miarę zbliżania się będzie wywoływał AJAX na serwerze, aby uzyskać dane dla tego powiększonego regionu (prawdopodobnie przez to przebiegnie ten sam algorytm klastra). Jak ten interfejs z interfejsem API Highcharts?Zestaw Highcharts dużych zestawów danych
Odpowiedz
Tutaj jest poprawa na odpowiedź Barbary,
Rejestruje do zdarzenia setExtremes, wiedzieć, czy jest to zdarzenie resetowania zoom. Jeśli tak jest - pobiera cały zestaw danych, , umożliwiając poprawne działanie zoomu.
Umożliwia także powiększanie zarówno w osi X, jak i Y.
var isReset = false;
...
xAxis: {
events: {
afterSetExtremes : afterSetExtremes,
setExtremes: function (e) {
if (e.max == null || e.min == null) {
isReset = true;
}
else
{
isReset = false;
}
}
},
minRange: 3600 * 1000 // one hour
},
series: [{
data: data,
dataGrouping: {
enabled: false
}
}]
});
});
});
/**
* Load new data depending on the selected min and max
*/
function afterSetExtremes(e) {
var url,
currentExtremes = this.getExtremes(),
range = e.max - e.min;
var chart = $('#container').highcharts();
var min = 0;
var max = 1.35e12;
if(!isReset)
{
min = e.min;
max = e.max;
}
chart.showLoading('Loading data from server...');
$.getJSON('http://www.highcharts.com/samples/data/from-sql.php?start=' + Math.round(min) +
'&end=' + Math.round(max) + '&callback=?', function (data) {
chart.series[0].setData(data);
chart.hideLoading();
});
}
Istnieje demonstracja highstock, która wykonuje to http://www.highcharts.com/stock/demo/lazy-loading. Ale można zrobić to samo z highcharts http://jsfiddle.net/RHkgr/ Ważne bit jest afterSetExtremes funkcjonować
...
xAxis : {
events : {
afterSetExtremes : afterSetExtremes
},
...
/**
* Load new data depending on the selected min and max
*/
function afterSetExtremes(e) {
var url,
currentExtremes = this.getExtremes(),
range = e.max - e.min;
var chart = $('#container').highcharts();
chart.showLoading('Loading data from server...');
$.getJSON('http://www.highcharts.com/samples/data/from-sql.php?start='+ Math.round(e.min) +
'&end='+ Math.round(e.max) +'&callback=?', function(data) {
chart.series[0].setData(data);
chart.hideLoading();
});
}
W innej notatce, że jsfiddle nie działa poprawnie, spróbuj powiększyć, a następnie reseting. Musi on ponownie pobrać oryginalne dane. – Ray
W przypadku, gdy nie będzie miał limit punktów, można zwiększyć turboThreshold paramter.
Próbowałem tego i nie jest to praktyczne, ponieważ muszę wspierać IE8: "( – Ray
Masz na myśli, że progresja turbosprężarki nie działa w IE8? Czy mógłbyś odtworzyć swój przykład w jsfiddle.net? –
Nie, IE8 nie radzi sobie dobrze z tak wieloma obiektami, będzie Cię wiele razy pytać, czy chcesz zabić scenariusz, – Ray
- 1. Dopasowywanie przestrzenne dużych zestawów danych
- 2. SQLite dla dużych zestawów danych?
- 3. Ładowanie kilku dużych zbiorów danych w Highcharts
- 4. Optymalizacja autouzupełniania dla dużych zestawów danych
- 5. Ładowanie dużych zestawów danych za pomocą AngularJS
- 6. Przetwarzanie dużych zestawów danych przy użyciu LINQ
- 7. Ember dławi się po napotkaniu dużych zestawów danych
- 8. zestaw zestawów znaków w szynach
- 9. Przecięcie dwóch zestawów (list) danych
- 10. Jak wykryć, czy zestaw zestawów zawiera inny zestaw?
- 11. Wywoływanie dużych zbiorów danych RDF z pamięci
- 12. Pobieranie danych zestawów kwerend pojedynczo
- 13. Highcharts seria tablica danych
- 14. Wybieranie hurtowni danych dużych
- 15. Przyrostowy PCA na dużych danych
- 16. R: rbind wiele zestawów danych
- 17. Proces porównywania dwóch zestawów danych
- 18. Ładowanie danych HighCharts przez ajax
- 19. MATLAB fminunc() nie wypełnia dla dużych zestawów danych. Prace dla mniejszych
- 20. Efektywny sposób uzyskiwania dostępu do dużych zestawów danych do wyświetlenia na ulotce
- 21. Przetwarzanie dużych danych w pythonie
- 22. wykreślanie dużych danych w java
- 23. Jak przekonwertować zestaw danych Scikit-learn na zestaw danych Pand?
- 24. Jak podzielić zestaw plików w Ant na wiele zestawów?
- 25. Stała wielkość zestaw zawiera maksymalną liczbę podanych zestawów
- 26. Statyczny zestaw danych szyn
- 27. Jak posortować zestaw danych?
- 28. Dobry zestaw danych do analizy sentymentów?
- 29. Korzystanie z 2 zestawów danych w SSRS Axapta 2012
- 30. Łączenie dwóch wyników zestawów danych w jeden
Zgaduję, że muszę złapać 'selected' zdarzenie, a następnie pojawi się ekran ładowania, a następnie AJAX połączenie, a następnie usunąć dane i dodać nowe dane, ale jak to robił powiększanie pracować, ponieważ ta metoda nie wyjaśniałaby tego. – Ray
Właściwie to myślę, że to może zadziałać. Myślę, że uwzględniłoby to powiększanie, ponieważ osie byłyby następnie aktualizowane. Musiałbym po prostu pokazać przycisk Reset Zoom, który wyświetliłby oryginalne dane. – Ray