data: [20, 10]
```
+You can also specify the dataset as x/y coordinates.
+
+```javascript
+data: [{x:'2016-12-25', y:20}, {'2016-12-26', y:10}]
+```
+
# Stacked Bar Chart
Bar charts can be configured into stacked bar charts by changing the settings on the X and Y axes to enable stacking. Stacked bar charts can be used to show how one data series is made up of a number of smaller pieces.
var meta = me.getMeta();
var scale = me.getValueScale();
var datasets = chart.data.datasets;
- var value = Number(datasets[datasetIndex].data[index]);
+ var value = scale.getRightValue(datasets[datasetIndex].data[index]);
var stacked = scale.options.stacked;
var stack = meta.stack;
var start = 0;
imeta.controller.getValueScaleId() === scale.id &&
chart.isDatasetVisible(i)) {
- ivalue = Number(datasets[i].data[index]);
+ ivalue = scale.getRightValue(datasets[i].data[index]);
if ((value < 0 && ivalue < 0) || (value >= 0 && ivalue > 0)) {
start += ivalue;
}
draw: function() {
var me = this;
var chart = me.chart;
+ var scale = me.getIndexScale();
var rects = me.getMeta().data;
var dataset = me.getDataset();
var ilen = rects.length;
var i = 0;
- var d;
helpers.canvas.clipArea(chart.ctx, chart.chartArea);
for (; i < ilen; ++i) {
- d = dataset.data[i];
- if (d !== null && d !== undefined && !isNaN(d)) {
+ if (!isNaN(scale.getRightValue(dataset.data[i]))) {
rects[i].draw();
}
}
var noop = helpers.noop;
Chart.LinearScaleBase = Chart.Scale.extend({
+ getRightValue: function(value) {
+ if (typeof value === 'string') {
+ return +value;
+ }
+ return Chart.Scale.prototype.getRightValue.call(this, value);
+ },
+
handleTickRangeOptions: function() {
var me = this;
var opts = me.options;