Skip to main content
100%

Point Distributions by Set Scores

✓ Published0🌍 Public
TTennisVisuals
Last edited Feb 18, 2016
Created on Feb 17, 2016

This visualization compares tennis match statistics by showing the distribution of total points (and total shots) across different set scores, such as 6-0 or 7-5. Sets are grouped along the x-axis, with each group displaying an animated, exploding boxplot that highlights quartiles, outliers, and individual data points. The chart uses D3.js v3 with SVG and supports dynamic transitions when switching between point or shot metrics. Tooltips are configurable via d3-tip or Bootstrap popovers, and the data comes from parsed ATP and WTA match records.

AI-generated description

reusable updating exploding boxplot

Design based on original: mcaule

See this block in production with Live Data

Features:

  • Dynamic data transitions
  • Events are configurable as options such that external functions can be seamlessly integrated
  • e.g. external tooltips can be configured for mouseover events
var container = d3.select('body');
var xbp = explodingBoxplot();
xbp.options({
  data: {
    group: 'Set Score',
    color_index: 'Set Score',
    identifier: 'h2h'
  },
  axes: {
    x: { label: 'Set Score' },
    y: { label: 'Total Points' }
  }
});
xbp.data(data);
container.call(xbp);
xbp.update();

Change the dimension for y axis:

xbp.options( { axes: { y: { label: 'Total Shots' } } });
xbp.update();

Data for this example was generated by mcpParse

Accessors:

by default accessors with no parameters return current values

  • chart.options(object) // for options that don't have accessors
  • chart.width(width)
  • chart.height(height)
  • chart.data(data) // set data
  • chart.update() // update chart
  • chart.colors(object) // chart.colors({'group': 'color1', 'group': 'color2'})
  • chart.events() // trigger functions for i.e. mouseover/mouseout events
operations on data held in chart instance
  • chart.pop()
  • chart.push(row) -or- chart.push([row, row])

Similar vizzes