mirror of
https://github.com/chartjs/Chart.js.git
synced 2026-02-01 17:47:09 +00:00
Allow specifying bar chart via {x, y} data points (#4565)
This commit is contained in:
parent
326991ce50
commit
56fdd7ebc1
@ -152,6 +152,12 @@ The `data` property of a dataset for a bar chart is specified as a an array of n
|
||||
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.
|
||||
|
||||
@ -268,7 +268,7 @@ module.exports = function(Chart) {
|
||||
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;
|
||||
@ -283,7 +283,7 @@ module.exports = function(Chart) {
|
||||
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;
|
||||
}
|
||||
@ -330,17 +330,16 @@ module.exports = function(Chart) {
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,13 @@ module.exports = function(Chart) {
|
||||
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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user