Angular-图表自定义
Angular-chart customization
我正在使用 AngularJS v1.6.6 和 angular-chart v.1.1.1 在我的应用程序中显示图表。
这里是fiddle:https://jsfiddle.net/elenat82/w9gs3fqt/3/
这是代码:
HTML:
<div class="container" ng-app="app" ng-controller="ChartCtrl">
<div class="row">
<div class="col-md-6">
<canvas
id="base"
class="chart-base"
chart-data="datas"
chart-labels="labelsdata"
chart-series="series"
chart-type="type"
chart-options="options">
</canvas>
</div>
</div>
JS:
angular.module("app", ["chart.js"])
.controller("ChartCtrl", function($scope) {
$scope.datas = [
[132],
[170],
[2.50],
[45.67],
[154],
[89],
[111],
[160],
[94]
];
$scope.labelsdata = ["today"];
$scope.series = ["label1", "label2", "label3", "label4", "label5", "label6", "label7", "label8", "label9"];
if ($scope.labelsdata.length > 1) {
$scope.type = 'line';
}
else {
$scope.type = 'bar';
}
$scope.options = {
scales: {
yAxes: [
{id: 'y-axis-1',
type: 'linear',
display: true,
position: 'left'},
{id: 'y-axis-2',
type: 'linear' ,
display: true,
position: 'right'}
]
}
}
});
我想做的是在图表的两侧显示相同的 Y 轴,具有相同的比例,现在左边的 Y 轴没问题,但右边的显示奇怪的值....我想要右 Y 轴与我在左侧的完全相同。如果我理解正确 http://www.chartjs.org/docs/latest/axes/cartesian/#axis-id 你可以为不同的数据集使用单独的 Y 轴,但这不是我想要的。
我还希望始终显示标签,不仅是当我将鼠标悬停在条形图上时,现在很难弄清楚每个条形图与什么相关......
您可以为 y-axis
的两侧定义自定义刻度
https://jsfiddle.net/w9gs3fqt/13/
var axis_ticks = {
beginAtZero: true,
max:200,
min: 0,
stepSize: 50
};
$scope.options = {
scales: {
yAxes: [
{id: 'y-axis-1',
type: 'linear',
display: true,
position: 'left',
ticks:axis_ticks
},
{id: 'y-axis-2',
type: 'linear' ,
display: true,
position: 'right',
ticks:axis_ticks
}
]
}
}
我正在使用 AngularJS v1.6.6 和 angular-chart v.1.1.1 在我的应用程序中显示图表。
这里是fiddle:https://jsfiddle.net/elenat82/w9gs3fqt/3/
这是代码:
HTML:
<div class="container" ng-app="app" ng-controller="ChartCtrl">
<div class="row">
<div class="col-md-6">
<canvas
id="base"
class="chart-base"
chart-data="datas"
chart-labels="labelsdata"
chart-series="series"
chart-type="type"
chart-options="options">
</canvas>
</div>
</div>
JS:
angular.module("app", ["chart.js"])
.controller("ChartCtrl", function($scope) {
$scope.datas = [
[132],
[170],
[2.50],
[45.67],
[154],
[89],
[111],
[160],
[94]
];
$scope.labelsdata = ["today"];
$scope.series = ["label1", "label2", "label3", "label4", "label5", "label6", "label7", "label8", "label9"];
if ($scope.labelsdata.length > 1) {
$scope.type = 'line';
}
else {
$scope.type = 'bar';
}
$scope.options = {
scales: {
yAxes: [
{id: 'y-axis-1',
type: 'linear',
display: true,
position: 'left'},
{id: 'y-axis-2',
type: 'linear' ,
display: true,
position: 'right'}
]
}
}
});
我想做的是在图表的两侧显示相同的 Y 轴,具有相同的比例,现在左边的 Y 轴没问题,但右边的显示奇怪的值....我想要右 Y 轴与我在左侧的完全相同。如果我理解正确 http://www.chartjs.org/docs/latest/axes/cartesian/#axis-id 你可以为不同的数据集使用单独的 Y 轴,但这不是我想要的。
我还希望始终显示标签,不仅是当我将鼠标悬停在条形图上时,现在很难弄清楚每个条形图与什么相关......
您可以为 y-axis
的两侧定义自定义刻度https://jsfiddle.net/w9gs3fqt/13/
var axis_ticks = {
beginAtZero: true,
max:200,
min: 0,
stepSize: 50
};
$scope.options = {
scales: {
yAxes: [
{id: 'y-axis-1',
type: 'linear',
display: true,
position: 'left',
ticks:axis_ticks
},
{id: 'y-axis-2',
type: 'linear' ,
display: true,
position: 'right',
ticks:axis_ticks
}
]
}
}