score:7
The gradient direction (Vertically in your case) not related directly to chart.js
, but to HTML canvas createLinearGradient() Method.
createLinearGradient
JavaScript syntax:
context.createLinearGradient(x0,y0,x1,y1);
https://www.w3schools.com/tags/canvas_createlineargradient.asp
Example of top to bottom "vertically" gradient from w3schools:
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var my_gradient = ctx.createLinearGradient(0, 0, 0, 170);
my_gradient.addColorStop(0, "black");
my_gradient.addColorStop(1, "white");
ctx.fillStyle = my_gradient;
ctx.fillRect(20, 20, 150, 100);
<div>Top to bottom</div>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
"One gradient"
Docs:
An alternative option is to pass a CanvasPattern or CanvasGradient object instead of a string colour. https://www.chartjs.org/docs/latest/general/colors.html#patterns-and-gradients
Same as one solid color but passing CanvasGradient
object:
var bar_ctx = document.getElementById('chart').getContext('2d');
var background_1 = bar_ctx.createLinearGradient(0, 0, 0, 600);
background_1.addColorStop(0, 'red');
background_1.addColorStop(1, 'blue');
And set background_1
under data
/* data */
var data = {
labels: ["Africa", "Asia", "Europe", "America"],
datasets: [{
/* data */
label: "Population (millions)",
backgroundColor: background_1,
data: [40,60,80, 100]
}]
};
"multiple colors for bars"
Use multiple gradients objects inside backgroundColor (object1 for item-1 and so on).
backgroundColor: [background_1, background_2, background_3, background_4],
** My code is not DRY (The best idea her is to create gradient objects by some loop throw array of data). By purpose i keep this example "simple".
var bar_ctx = document.getElementById('chart').getContext('2d');
var background_1 = bar_ctx.createLinearGradient(0, 0, 0, 600);
background_1.addColorStop(0, 'red');
background_1.addColorStop(1, 'blue');
var background_2 = bar_ctx.createLinearGradient(0, 0, 0, 600);
background_2.addColorStop(0, 'green');
background_2.addColorStop(1, 'orange');
var background_3 = bar_ctx.createLinearGradient(0, 0, 0, 600);
background_3.addColorStop(0, 'orange');
background_3.addColorStop(1, 'purple');
var background_4 = bar_ctx.createLinearGradient(0, 0, 0, 600);
background_4.addColorStop(0, 'green');
background_4.addColorStop(1, 'violet');
/* data */
var data = {
labels: ["Africa", "Asia", "Europe", "America"],
datasets: [{
/* data */
label: "Population (millions)",
backgroundColor: [background_1, background_2, background_3, background_4],
data: [40,60,80, 100]
}]
};
var options = {
responsive: true,
title: {
text: 'multiple colors for bars',
display: true
},
scales: {
xAxes: [{
stacked: true,
ticks: {
},
}],
yAxes: [{
stacked: true,
}]
}
};
var myChart = new Chart(document.getElementById("chart"), {
type: 'bar',
data: data,
options: options
});
<canvas id="chart" width="800" height="600"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>
score:0
Try to click one of the jsfiddle there, then change the chart type to 'bar'. You'll see it will work.
Yes they are all the same color, because on their example they are only using one gradient. You can create multiple gradient with different color and apply it seperately since you are using multiple rgba already, you can change it and apply specific gradient to your bar. My english is not that good i hope you get my point.
Source: stackoverflow.com
Related Query
- Chart.js - Add gradient to bar chart
- Add DataSet Bar Chart - Chart.JS
- ChartJS add tooltip to a grouped bar chart
- How to add second Y-axis for Bar and Line chart in Chart.js?
- how to add a title to my ng2-charts bar chart
- How to add gradient background to Line Chart [vue-chart.js]
- Add a custom label to the top or bottom of a stacked bar chart
- How to add background image in bar chart column in Chart.js?
- How to show gradient vertically on chart js grouped bar chart?
- Add HTML to label of bar chart - chart js
- Add Labels to Chart.js Bar Chart
- Horizontal gradient for every single bar in group chart js
- Issue with chartjs linear gradient for the mixed bar chart in ReactJS is not calculated for each individual Bars
- chart js bar chart add animation to change color
- How to add unused data background to bar in chart js
- ChartJS add custom tooltip to a stacked bar chart
- How to add labels on top of the chart bar with Chart.js 2
- Chart.js - Add gradient to line chart background
- Add images inside bar chart in chart.js
- How to add custom text inside the bar and how to reduce the step size in y axis in chart js( Bar chart )
- chartjs add dots to bars in grouped bar chart
- Chartjs Bar Chart add background color to value labels
- Add bar chart in a column
- How to add data labels in each bar in stacked bar chart in chart.js?
- How to add label square to Bar Chart using Chart.js
- Add a click event to the bar chart of chartjs
- How to add vertical line in bar chart using chartJs and ng2-charts?
- How to add text inside the doughnut chart using Chart.js?
- chart js 2 how to set bar width
- Chartjs Bar Chart showing old data when hovering
More Query from same tag
- Chart only prints out first value using jquery ajax php
- How to push array multidimesional in javascript
- Draw a Chart.js with ajax data and responsive. A few problems and questions
- chartjs-plugin-annotations not displayed in angular 5
- Change position of Chart.js tick labels
- Showing a duration of time within a Chart.js chart
- Chart.js – how to remove data entries from the tooltip?
- Looping through json array properties
- Chart.js different scaleLine color of radar chart (angular)
- react-chartjs-2 with chartJs 3: Error "arc" is not a registered element
- Chart.js horizontal bar width
- ChartJS showing old values when mouse over on Doughnut after updating values
- AngularJs ChartJs tooltip z-index issue
- Inserting an array in Chart.JS
- Chart.js Line Graph: Start a line in the middle of a graph
- How to seprate label and total value using array and pass to view
- Understanding Chart.js and Adding Legends to Pie Charts
- How to add Canvas tag inside repeater
- How to display multiple graphs in real time with chartjs
- Display php array data in chart.js javascript
- How to display "%" sign on mouse hover in Pie-Chart
- Chart.js Scaling issue when initially loading the page
- Is it possible to maintain two different font size in Chart.JS based on screen size?
- Add watermark/logo to Chart.js
- ChartJS Datalabels plugin and negative numbers
- chartjs : how to set custom scale in bar chart
- Stacked line chart not displaying correctly when Xaxis is time
- How to change position of label of y-axes in chartjs?
- ChartJS fixed y axis on scroll
- charts js, doughnut chart not rendering tooptips correctly