zoom_reduction.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. var chart;
  2. function refresh() {
  3. if (suspendRefresh)
  4. return;
  5. chart.load({
  6. columns: [
  7. ["Value"].concat(zoom(column, currentZoom, "t=>Math.round(t.avg())".toLambda())),
  8. ["xColumn"].concat(zoom(xColumn, currentZoom, "t=>t[0]".toLambda())),
  9. ]
  10. });
  11. }
  12. function getChart() {
  13. return chart;
  14. }
  15. function main() {
  16. var last = 0;
  17. var max = 10000;
  18. var column = Array.generate(max, function (i) {
  19. return last += Math.randomInt(-10, 10);
  20. });
  21. var xColumn = Array.generateNumbers(0, max);
  22. var options = {
  23. bindto: "#divChart",
  24. data: {
  25. columns: [
  26. ["Value"].concat(column),
  27. ["x"].concat(xColumn),
  28. ],
  29. type: "line",
  30. x: "x"
  31. },
  32. zoom2: {
  33. enabled: true,
  34. }
  35. };
  36. chart = c3ext.generate(options);
  37. window.setInterval(refreshStatus, 1000);
  38. function refreshStatus() {
  39. var zoomInfo = chart.zoom2.getZoom();
  40. var info = {
  41. reduced: chart.zoom2.maxItems(),
  42. actual: (zoomInfo.currentZoom[1] - zoomInfo.currentZoom[0]),
  43. range: zoomInfo.currentZoom[0] + "-" + zoomInfo.currentZoom[1],
  44. total: zoomInfo.totalItems
  45. };
  46. $("#status").text(JSON.stringify(info, null, " "));
  47. }
  48. };
  49. if (typeof (Array.generate) == "undefined") {
  50. Array.generate = function (length, generator) {
  51. var list = new Array(length);
  52. for (var i = 0; i < length; i++) {
  53. list[i] = generator(i);
  54. }
  55. return list;
  56. }
  57. }
  58. if (typeof (Math.randomInt) == "undefined") {
  59. Math.randomInt = function (min, max) {
  60. return Math.floor(Math.random() * (max - min + 1)) + min;
  61. }
  62. }
  63. if (typeof (Array.generateNumbers) == "undefined") {
  64. Array.generateNumbers = function (from, until) {
  65. if (arguments.length == 1) {
  66. until = from;
  67. from = 0;
  68. }
  69. var length = until - from;
  70. var list = new Array(length);
  71. for (var i = 0; i < length; i++) {
  72. list[i] = i + from;
  73. }
  74. return list;
  75. }
  76. }