如何在 angular-chart 条形图中有纯色条
How to have solid colored bars in angular-chart bar chart
我正在使用 angular-chart(基于 chart.js)创建一些条形图,但无法获得我想要的条形样式。我希望条形图是这样的纯色:
但我不知道如何去掉 chart.js 默认添加的 alpha:
我的 html 看起来像这样:
<body ng-app="myApp" ng-controller="myController as ctrl">
<canvas id="outreach" class="chart chart-bar"
chart-labels="ctrl.socialChart.labels"
chart-data="ctrl.socialChart.data"
chart-series="ctrl.socialChart.series"
chart-colors="ctrl.socialChart.colors"
chart-options="ctrl.socialChart.options"></canvas>
</body>
和javascript:
angular.module('myApp', ['chart.js'])
.controller('myController', [function() {
var ctrl = this;
ctrl.socialChart = {
options: {
legend: {
display: true
}
},
labels: ['2012'],
series: ['FACEBOOK', 'GOOGLE', 'TWITTER', 'INSTAGRAM'],
// colors: ['rgba(237, 64, 42, 1)', 'rgba(240, 171, 5, 1)', 'rgba(160, 180, 33, 1)', 'rgba(0, 163, 159, 1)'],
colors: ['#ED402A', '#F0AB05', '#A0B421', '#00A39F'],
data: [[1178], [652], [1004], [838]]
}
}]);
这是一个 Plunker 演示:Plunker
我找到了很多关于使用 rgba 表示法(出于某种原因,这完全给我错误的颜色)和 fillColor(我根本无法工作)的信息。很难说出 chart.js.
的版本 1 或版本 2 的信息是什么
如有任何帮助,我们将不胜感激。
您可以使用chart-dataset-override="datasetOverride"
HTML
<div ng-controller="BarCtrl">
<canvas id="bar" class="chart chart-bar"
chart-data="data"
chart-labels="labels"
chart-series="series"
chart-dataset-override="datasetOverride"></canvas>
</div>
控制器
ctrl.datasetOverride = [{
fill: true,
backgroundColor: [
"#ED402A",
"#36A2EB",
"#FFCE56"
]
}, {
fill: true,
backgroundColor: [
"#F0AB05",
"#36A2EB",
"#FFCE56"
]
}, {
fill: true,
backgroundColor: [
"#A0B421",
"#36A2EB",
"#FFCE56"
]
}, {
fill: true,
backgroundColor: [
"#00A39F",
"#36A2EB",
"#FFCE56"
]
},
];
我正在使用带有 angular 包装器的 chart.js 版本 2,进行以下编辑对我有所帮助。
更改 - 颜色采用 rgba(R,G,B,alpha) 形式的参数
alpha = 1 :纯色,
alpha = 0 : 透明色
在 HTML 中:
<canvas id="bar" class="chart chart-bar" chart-data="barData"
chart-labels="filter" chart-series="barLabels" chart-options="baroptions" chart-colors="setColors" > </canvas>
在我的控制器 class 中,我将 setColors 定义如下:
在 controller.js 中:
$scope.setColors = [{backgroundColor:'rgba(249,166,92,1)',pointBackgroundColor:'rgba(249,166,92,1),pointHoverBackgroundColor:'rgba(249,166,92,1)',borderColor:'rgba(249,166,92,1)',pointBorderColor:'rgba(249,166,92,1)',pointHoverBorderColor:'rgba(249,166,92,1)'},
{backgroundColor:'rgba(90,155,211,1)',pointBackgroundColor:'rgba(90,155,211,1)',pointHoverBackgroundColor:'rgba(90,155,211,1)',borderColor:'rgba(90,155,211,1)',pointBorderColor:'rgba(90,155,211,1)',pointHoverBorderColor:'rgba(90,155,211,1)'},
{backgroundColor:'rgba(120,194,107,1)',pointBackgroundColor:'rgba(120,194,107,1)',pointHoverBackgroundColor:'rgba(120,194,107,1)',borderColor:'rgba(120,194,107,1)',pointBorderColor:'rgba(120,194,107,1)',pointHoverBorderColor:'rgba(120,194,107,1)'}]
这是我制作带有自定义设置的条形图的代码。在 canvas html 标签中使用此属性 chart-dataset-override="datasetOverride":
<canvas id="bar" class="chart chart-bar"
chart-data="expenseData" chart-labels="labels" chart-series="series"
chart-options="chartOptions" chart-dataset override="datasetOverride">
</canvas>
var setGraphDate = function () {
var xData = [];
var yData = [];
$scope.Data.ExpenseRecords.forEach(function (g) {
yData.push(g.PercentOfCompletion);
xData.push(g.TspShortName);
});
$scope.datasetOverride =
{
backgroundColor: "#4E4EFF",
borderColor: "#2E2E99"
};
$scope.labels = xData;
$scope.expenseData = yData;
$scope.series = ['Expense Graph'];
// more options
$scope.chartOptions = {
legend: {
display: false
},
},
title: {
display: true,
text: 'TSP Burn Rate'
},
events: false,
tooltips: {
enabled: false
},
hover: {
animationDuration: 0
}
};
只需使用 RGBA,其中 A 是不透明度,并将其设置为 1,即定义纯色。
例如:backgroundColor: [ 'rgba(255, 99, 132, 1)']
我正在使用 angular-chart(基于 chart.js)创建一些条形图,但无法获得我想要的条形样式。我希望条形图是这样的纯色:
但我不知道如何去掉 chart.js 默认添加的 alpha:
我的 html 看起来像这样:
<body ng-app="myApp" ng-controller="myController as ctrl">
<canvas id="outreach" class="chart chart-bar"
chart-labels="ctrl.socialChart.labels"
chart-data="ctrl.socialChart.data"
chart-series="ctrl.socialChart.series"
chart-colors="ctrl.socialChart.colors"
chart-options="ctrl.socialChart.options"></canvas>
</body>
和javascript:
angular.module('myApp', ['chart.js'])
.controller('myController', [function() {
var ctrl = this;
ctrl.socialChart = {
options: {
legend: {
display: true
}
},
labels: ['2012'],
series: ['FACEBOOK', 'GOOGLE', 'TWITTER', 'INSTAGRAM'],
// colors: ['rgba(237, 64, 42, 1)', 'rgba(240, 171, 5, 1)', 'rgba(160, 180, 33, 1)', 'rgba(0, 163, 159, 1)'],
colors: ['#ED402A', '#F0AB05', '#A0B421', '#00A39F'],
data: [[1178], [652], [1004], [838]]
}
}]);
这是一个 Plunker 演示:Plunker
我找到了很多关于使用 rgba 表示法(出于某种原因,这完全给我错误的颜色)和 fillColor(我根本无法工作)的信息。很难说出 chart.js.
的版本 1 或版本 2 的信息是什么如有任何帮助,我们将不胜感激。
您可以使用chart-dataset-override="datasetOverride"
HTML
<div ng-controller="BarCtrl">
<canvas id="bar" class="chart chart-bar"
chart-data="data"
chart-labels="labels"
chart-series="series"
chart-dataset-override="datasetOverride"></canvas>
</div>
控制器
ctrl.datasetOverride = [{
fill: true,
backgroundColor: [
"#ED402A",
"#36A2EB",
"#FFCE56"
]
}, {
fill: true,
backgroundColor: [
"#F0AB05",
"#36A2EB",
"#FFCE56"
]
}, {
fill: true,
backgroundColor: [
"#A0B421",
"#36A2EB",
"#FFCE56"
]
}, {
fill: true,
backgroundColor: [
"#00A39F",
"#36A2EB",
"#FFCE56"
]
},
];
我正在使用带有 angular 包装器的 chart.js 版本 2,进行以下编辑对我有所帮助。
更改 - 颜色采用 rgba(R,G,B,alpha) 形式的参数
alpha = 1 :纯色,
alpha = 0 : 透明色
在 HTML 中:
<canvas id="bar" class="chart chart-bar" chart-data="barData"
chart-labels="filter" chart-series="barLabels" chart-options="baroptions" chart-colors="setColors" > </canvas>
在我的控制器 class 中,我将 setColors 定义如下:
在 controller.js 中:
$scope.setColors = [{backgroundColor:'rgba(249,166,92,1)',pointBackgroundColor:'rgba(249,166,92,1),pointHoverBackgroundColor:'rgba(249,166,92,1)',borderColor:'rgba(249,166,92,1)',pointBorderColor:'rgba(249,166,92,1)',pointHoverBorderColor:'rgba(249,166,92,1)'},
{backgroundColor:'rgba(90,155,211,1)',pointBackgroundColor:'rgba(90,155,211,1)',pointHoverBackgroundColor:'rgba(90,155,211,1)',borderColor:'rgba(90,155,211,1)',pointBorderColor:'rgba(90,155,211,1)',pointHoverBorderColor:'rgba(90,155,211,1)'},
{backgroundColor:'rgba(120,194,107,1)',pointBackgroundColor:'rgba(120,194,107,1)',pointHoverBackgroundColor:'rgba(120,194,107,1)',borderColor:'rgba(120,194,107,1)',pointBorderColor:'rgba(120,194,107,1)',pointHoverBorderColor:'rgba(120,194,107,1)'}]
这是我制作带有自定义设置的条形图的代码。在 canvas html 标签中使用此属性 chart-dataset-override="datasetOverride":
<canvas id="bar" class="chart chart-bar"
chart-data="expenseData" chart-labels="labels" chart-series="series"
chart-options="chartOptions" chart-dataset override="datasetOverride">
</canvas>
var setGraphDate = function () {
var xData = [];
var yData = [];
$scope.Data.ExpenseRecords.forEach(function (g) {
yData.push(g.PercentOfCompletion);
xData.push(g.TspShortName);
});
$scope.datasetOverride =
{
backgroundColor: "#4E4EFF",
borderColor: "#2E2E99"
};
$scope.labels = xData;
$scope.expenseData = yData;
$scope.series = ['Expense Graph'];
// more options
$scope.chartOptions = {
legend: {
display: false
},
},
title: {
display: true,
text: 'TSP Burn Rate'
},
events: false,
tooltips: {
enabled: false
},
hover: {
animationDuration: 0
}
};
只需使用 RGBA,其中 A 是不透明度,并将其设置为 1,即定义纯色。
例如:backgroundColor: [ 'rgba(255, 99, 132, 1)']