Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. var data = [{value: 1, label: 'Olaf'}, {value: 2, label: 'Marc'}, {value: 5, label: 'Stine'}, {
  2. value: 1,
  3. label: 'MC'
  4. }, {value: 3, label: 'Louise'}, {value: 2, label: 'Jens'}];
  5. var outerWidth = 500;
  6. var outerHeight = 250;
  7. var margin = { left: 130, top: 0, right: 0, bottom: 30 };
  8. var barPadding = 0.2;
  9.  
  10. var xColumn = "value";
  11. var yColumn = "label";
  12.  
  13. var innerWidth = outerWidth - margin.left - margin.right;
  14. var innerHeight = outerHeight - margin.top - margin.bottom;
  15.  
  16. var svg = d3.select("#chartArea").append("svg")
  17. .attr("width", outerWidth)
  18. .attr("height", outerHeight);
  19.  
  20.  
  21. var g = svg.append("g")
  22. .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
  23. var xAxisG = g.append("g")
  24. .attr("class", "x axis")
  25. .attr("transform", "translate(0," + innerHeight + ")");
  26. var yAxisG = g.append("g")
  27. .attr("class", "y axis");
  28.  
  29. var xScale = d3.scale.linear().range( [0, innerWidth]);
  30. var yScale = d3.scale.ordinal().rangeBands([0, innerHeight], barPadding);
  31.  
  32. var xAxis = d3.svg.axis().scale(xScale).orient("bottom")
  33. .ticks(d3.max(data, function (d){ return d[xColumn]; })) // Use approximately 5 ticks marks.
  34. .tickFormat(d3.format("s")) // Use intelligent abbreviations, e.g. 5M for 5 Million
  35. .outerTickSize(0); // Turn off the marks at the end of the axis.
  36. var yAxis = d3.svg.axis().scale(yScale).orient("left")
  37. .outerTickSize(1); // Turn off the marks at the end of the axis.
  38.  
  39. function render(data){
  40. xScale.domain([0, d3.max(data, function (d){ return d[xColumn]; })]);
  41. yScale.domain(data.map( function (d){ return d[yColumn]; }));
  42.  
  43. xAxisG.call(xAxis);
  44. yAxisG.call(yAxis);
  45.  
  46. var bars = g.selectAll("rect").data(data);
  47. bars.enter().append("rect")
  48. .attr("height", yScale.rangeBand())
  49. .attr('class', 'vertical_bar');
  50. bars.transition();
  51. bars
  52. .attr("x", 0)
  53. .attr("y", function (d){ return yScale(d[yColumn]); })
  54. .attr("width", function (d){ return xScale(d[xColumn]); });
  55. bars.exit().remove();
  56. }
  57.  
  58. render(data);
  59.  
  60. setTimeout(function () {
  61. var data = [{value: 4, label: 'Olaf'}, {value: 22, label: 'Marc'}, {value: 15, label: 'Stine'}, {
  62. value: 13,
  63. label: 'MC'
  64. }, {value: 20, label: 'Louise'}, {value: 32, label: 'Jens'}];
  65. render(data);
  66. },5000);
  67.  
  68. function render(data){
  69. xScale.domain([0, d3.max(data, function (d){ return d[xColumn]; })]);
  70. yScale.domain(data.map( function (d){ return d[yColumn]; }));
  71.  
  72. xAxisG.call(xAxis);
  73. yAxisG.call(yAxis);
  74.  
  75. var bars = g.selectAll("rect").data(data);
  76. bars.enter().append("rect")
  77. .attr("height", yScale.rangeBand())
  78. .attr('class', 'vertical_bar')
  79. .on('mouseover', tip.show)
  80. .on('mouseout', tip.hide);
  81. bars.transition();
  82. bars
  83. .attr("x", 0)
  84. .attr("y", function (d){ return yScale(d[yColumn]); })
  85. .attr("width", function (d){ return xScale(d[xColumn]); });
  86. bars.exit().remove();
  87. }
  88.  
  89. render(data);
  90.  
  91. setTimeout(function () {
  92. var data = [{value: 4, label: 'Olaf'}, {value: 22, label: 'Marc'}, {value: 15, label: 'Stine'}, {
  93. value: 13,
  94. label: 'MC'
  95. }, {value: 20, label: 'Louise'}, {value: 32, label: 'Jens'}];
  96. render(data);
  97. },5000);
  98.  
  99. bars
  100. .transition()
  101. .attr("x", 0)
  102. .attr("y", function (d){ return yScale(d[yColumn]); })
  103. .attr("width", function (d){ return xScale(d[xColumn]); });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement