We should still allow the user to set a different data callback. Maybe this logic should be in _preprocessData or you can call `if (arguments.length) return _chart.data(_);` ?