# Category Cartesian Axis
-The category scale will be familiar to those who have used v1.0. Labels are drawn from one of the label arrays included in the chart data. If only `data.labels` is defined, this will be used. If `data.xLabels` is defined and the axis is horizontal, this will be used. Similarly, if `data.yLabels` is defined and the axis is vertical, this property will be used. Using both `xLabels` and `yLabels` together can create a chart that uses strings for both the X and Y axes.
+If global configuration is used, labels are drawn from one of the label arrays included in the chart data. If only `data.labels` is defined, this will be used. If `data.xLabels` is defined and the axis is horizontal, this will be used. Similarly, if `data.yLabels` is defined and the axis is vertical, this property will be used. Using both `xLabels` and `yLabels` together can create a chart that uses strings for both the X and Y axes.
+
+Specifying any of the settings above defines the x axis as `type: category` if not defined otherwise. For more fine-grained control of category labels it is also possible to add `labels` as part of the category axis definition. Doing so does not apply the global defaults.
+
+## Category Axis Definition
+
+Globally:
+
+```javascript
+let chart = new Chart(ctx, {
+ type: ...
+ data: {
+ labels: ['January', 'February', 'March', 'April', 'May', 'June'],
+ datasets: ...
+ },
+});
+```
+As part of axis definition:
+
+```javascript
+let chart = new Chart(ctx, {
+ type: ...
+ data: ...
+ options: {
+ scales: {
+ xAxes: [{
+ type: 'category',
+ labels: ['January', 'February', 'March', 'April', 'May', 'June'],
+ }]
+ }
+ }
+});
+```
## Tick Configuration Options
| Name | Type | Default | Description
| -----| ---- | --------| -----------
+| labels | Array[String] | - | An array of labels to display.
| `min` | `String` | | The minimum item to display. [more...](#min-max-configuration)
| `max` | `String` | | The maximum item to display. [more...](#min-max-configuration)
expect(scale.ticks).toEqual(mockData.xLabels);
});
- it('Should generate ticks from the data xLabels', function() {
+ it('Should generate ticks from the data yLabels', function() {
var scaleID = 'myScale';
var mockData = {
expect(scale.ticks).toEqual(mockData.yLabels);
});
+ it('Should generate ticks from the axis labels', function() {
+ var labels = ['tick1', 'tick2', 'tick3', 'tick4', 'tick5'];
+ var chart = window.acquireChart({
+ type: 'line',
+ data: {
+ data: [10, 5, 0, 25, 78]
+ },
+ options: {
+ scales: {
+ xAxes: [{
+ id: 'x',
+ type: 'category',
+ labels: labels
+ }]
+ }
+ }
+ });
+
+ var scale = chart.scales.x;
+ expect(scale.ticks).toEqual(labels);
+ });
+
it ('should get the correct label for the index', function() {
var scaleID = 'myScale';