function getMissingScaleProps(props, data, attributes) {
  const result = {};
  // Make sure that the domain is set pad it if specified
  attributes.forEach(attr => {
    if (!props[`get${toTitleCase(attr)}`]) {
      result[`get${toTitleCase(attr)}`] = d => d[attr];
    }
    if (!props[`get${toTitleCase(attr)}0`]) {
      result[`get${toTitleCase(attr)}0`] = d => d[`${attr}0`];
    }
    if (!props[`${attr}Domain`]) {
      result[`${attr}Domain`] = getDomainByAccessor(
        data,
        props[`get${toTitleCase(attr)}`] || result[`get${toTitleCase(attr)}`],
        props[`get${toTitleCase(attr)}0`] || result[`get${toTitleCase(attr)}0`],
        props[`${attr}Type`]
      );
      if (props[`${attr}Padding`]) {
        result[`${attr}Domain`] = _padDomain(
          result[`${attr}Domain`],
          props[`${attr}Padding`]
        );
      }
    }
  });

  return result;
}
Extract the missing scale props from the given data and return them as
an object.
@param {Object} props Props.
@param {Array} data Array of all data.
@param {Array<String>} attributes Array of attributes for the given
components (for instance, `['x', 'y', 'color']`).
@returns {Object} Collected props.