Guest User

Untitled

a guest
Sep 6th, 2013
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. /**
  2. * User: Pieterjan Lambrecht
  3. * Date: 29/08/13
  4. * Time: 22:22
  5. */
  6.  
  7. var data = [];
  8.  
  9. $(document).ready(function(){
  10.  
  11. d3.json("./data/chart.json", function (err, json) {
  12. if (err) {
  13. console.warn("Fout: " + error);
  14. }
  15.  
  16. for (var i = 0; i < json.length; i++) {
  17. t = json[i].temp;
  18. c = json[i].cpu;
  19. d = json[i].date;
  20. data.push({temp: t, cpu: c, date: d});
  21. }
  22.  
  23. drawGraph("cpu", drawGraph("temp"));
  24. });
  25.  
  26. })
  27.  
  28. // Load cpu data / temperature data
  29. function drawGraph(t) {
  30. // Perform actions on document ready
  31. var w = 500;
  32. var h = 250;
  33. var pad = 40;
  34. var type = t;
  35. var minDate = getDate(data[0]);
  36. var maxDate = getDate(data[data.length - 1]);
  37. var svga;
  38.  
  39. switch (type) {
  40. case("temp"):
  41. var svga = d3.select("#temp")
  42. .append("svg")
  43. .attr("width", w + pad)
  44. .attr("height", h + pad);
  45. case("cpu"):
  46. var svga = d3.select("#cpu")
  47. .append("svg")
  48. .attr("width", w + pad)
  49. .attr("height", h + pad);
  50. }
  51.  
  52. var x = d3.time.scale().domain([minDate, maxDate]).range([pad, w - pad * 2]);
  53. var y = d3.scale.linear().domain([
  54. d3.min(data,
  55. function (d) {
  56. switch (type) {
  57. case("temp"):
  58. return d.temp;
  59. case("cpu"):
  60. return d.cpu;
  61. }
  62. })*9/10,
  63. d3.max(data,
  64. function (d) {
  65. switch (type) {
  66. case("temp"):
  67. return d.temp;
  68. case("cpu"):
  69. return d.cpu;
  70. }
  71. })*10/9])
  72. .range([h - pad, pad]);
  73.  
  74. var lineFn = d3.svg.line()
  75. .x(function (d) {
  76. return x(getDate(d));
  77. })
  78. .y(function (d) {
  79. switch (type) {
  80. case("temp"):
  81. return y(d.temp);
  82. case("cpu"):
  83. return y(d.cpu);
  84. default:
  85. return y(d.temp)
  86. }
  87. });
  88.  
  89. var yFormat = function(d){
  90. switch(type){
  91. case("temp"):
  92. return d+"\xB0"+"C";
  93. case("cpu"):
  94. return d+"%";
  95. }
  96. };
  97. var xAxis = d3.svg.axis()
  98. .scale(x)
  99. .ticks(d3.time.hours, 24)
  100. .orient("bottom");
  101. var yAxis = d3.svg.axis()
  102. .scale(y)
  103. .tickFormat(function(d,i){return yFormat(d)})
  104. .orient("left")
  105. .ticks(5);
  106.  
  107. var line = svga.append("path")
  108. .attr("d", lineFn(data));
  109. svga.append("g")
  110. .attr("transform", "translate(0," + (h - pad) + ")")
  111. .call(xAxis);
  112. svga.append("g")
  113. .attr("transform", "translate(" + (pad) + ", 0)")
  114. .call(yAxis);
  115. }
  116.  
  117.  
  118. function getDate(tbd) {
  119. var date = tbd.date.split(" ");
  120. return Date.parse(date[2] + " " + date[1] + " " + date[date.length - 1] + " " + date[3]);
  121. }
Advertisement
Add Comment
Please, Sign In to add comment