barchart.js 891 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. Shiny.addCustomMessageHandler("barchart_values", function(message) {
  2. var dataset = message.n;
  3. //Width and height
  4. var w = 512;
  5. var h = 50;
  6. var sortOrder = false;
  7. var xScale = d3.scaleBand()
  8. .domain(d3.range(dataset.length))
  9. .range([0, w])
  10. .paddingInner(0.5);
  11. var yScale = d3.scaleLinear()
  12. .domain([0, d3.max(dataset)])
  13. .range([0, h]);
  14. //Create SVG element
  15. var barchart = d3.select("#barchart_area")
  16. .append("svg")
  17. .attr("width", w)
  18. .attr("height", h);
  19. //Create bars
  20. barchart.selectAll("rect")
  21. .data(dataset)
  22. .enter()
  23. .append("rect")
  24. .attr("x", function(d, i) {
  25. return xScale(i);
  26. })
  27. .attr("y", function(d) {
  28. return h - yScale(d);
  29. })
  30. .attr("width", xScale.bandwidth())
  31. .attr("height", function(d) {
  32. return yScale(d);
  33. })
  34. .attr("fill", function(d) {
  35. return "rgb(0, 0, " + Math.round(d * 10) + ")";
  36. });
  37. });