Chart Data Format

Data provided to a Visualforce chart must meet some specific requirements. Every element in the data collection must contain all fields referenced in the <apex:chart> component hierarchy that is bound to that data source. If all fields aren’t provided, a client-side JavaScript error is thrown, which you can view in a JavaScript console such as Firebug.

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.