Chart data provided by an Apex method should be a List of uniform objects. These objects can be simple wrappers, sObjects, or AggregateResult objects. Data fields can be made accessible as public member variables or properties.
Chart data provided by JavaScript methods should be a JavaScript array of arrays. Each inner array represents a record or data point. Data fields are made accessible as name: value pairs. See Providing Chart Data via a JavaScript Array for an example.