Skip to content

johnwalley/d3-bumps-chart

Repository files navigation

d3-bumps-chart

Build Status Dependency Status

Draw Bumps charts using d3.

See a demo here.

Installing

If you use NPM, npm install d3-bumps-chart. Otherwise, download the latest release. AMD, CommonJS, and vanilla environments are supported. In vanilla, a d3_bumps_chart global is exported:

<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://cdn.jsdelivr.net/lodash/4.15.0/lodash.min.js"></script>
<script src="../build/d3-bumps-chart.js"></script>

<script>
  var el = document.getElementById('bumps-chart');
  var chart = bumpsChart.bumpsChart();
  chart.setup(el);

  d3.json("./example/results.json", function(error, events) {

    var gender = "Women";
    var set = "Town Bumps";

    var transformedEvents = events
      .filter(e => e.gender.toLowerCase() === gender.toLowerCase())
      .filter(e => e.set === set)
      .sort((a, b) => a.year - b.year)
      .map(event => bumpsChart.transformData(event));

    var data = bumpsChart.joinEvents(transformedEvents, set, gender);

    var props = {
      data: data,
      year: { start: 2015, end: 2016 },
      selectedCrews: new Set(),
      highlightedCrew: null,
      addSelectedCrew: bumpsChart.bumpsChart().addSelectedCrew,
      removeSelectedCrew: bumpsChart.bumpsChart().removeSelectedCrew,
      highlightCrew: bumpsChart.bumpsChart().highlightCrew,
      windowWidth: window.width
    };

    chart.update(props);
  });
</script>

API Reference

# d3_bumps_chart.chart() <>

Constructs a new bumps chart generator with the default settings.

# chart.setup(element) <>

Sets up the svg elements which are independent of any data. Selects the element passed in.

# chart.update(props) <>

Renders the bumps chart based on props.