Chart.js 값이 양수인지 음수인지 판단하여 그래프 색상 변경
데모
htps : // 코데펜. 이오 / 카쿠타 _ 유 / 펜 / R 와요 xj
※CodePen으로 전환합니다.
모든 코드
HTML
<canvas id="myChart"></canvas>
자바스크립트
// 値を設定
var datasets = [
{
label: '利益額',
data: [-960, -640, -220, 30, -80, 300, 660],
backgroundColor: ['#3F88C5'] // 配列にしておく必要がある
}
]
// 各棒グラフの値が正か負かによって色分け
for (var i = 0; i < datasets[0].data.length; i++) {
if (datasets[0].data[i] > 0) {
datasets[0].backgroundColor[i] = '#3F88C5' // 値が正の場合は青
} else {
datasets[0].backgroundColor[i] = '#FF5E5B' // 値が負の場合は赤
}
}
/* ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
グラフ描画
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー */
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['2014年', '2015年', '2016年', '2017年', '2018年', '2019年', '2020年'],
datasets: datasets
},
});
해설
값 설정
그릴 값을 변수에 넣습니다.
이때, backgroundColor를 배열의 형태로 해 두는 것을 잊지 말아 주세요.
나중에 값을 판정해 backgroundColor에 파랑과 빨강의 칼라 코드를 넣어 갑니다만, 배열로 해 두지 않으면 잘 들어주지 않습니다.
// 値を設定
var datasets = [
{
label: '利益額',
data: [-960, -640, -220, 30, -80, 300, 660],
backgroundColor: ['#3F88C5'] // 配列にしておく必要がある
}
]
값 결정 및 색상 설정
값의 수만큼 루프를 돌려 색상을 설정합니다.
예를 들어 세 번째 값이 음수이면 backgroundColor[2]에 빨간색 색상 코드를 넣습니다.
// 各棒グラフの値が正か負かによって色分け
for (var i = 0; i < datasets[0].data.length; i++) {
if (datasets[0].data[i] > 0) {
datasets[0].backgroundColor[i] = '#3F88C5' // 値が正の場合は青
} else {
datasets[0].backgroundColor[i] = '#FF5E5B' // 値が負の場合は赤
}
}
그래프 그리기
위에서 설정한 datasets를 그래프 드로잉 코드에 넣습니다.
이번에는 최저한의 코드 밖에 기술하고 있지 않기 때문에 데모에서는 범례의 색이 빨강으로 되어 있습니다만, 이 근처는 option으로 범례를 숨기라고 하는 처리가 필요합니다.
/* ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
グラフ描画
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー */
var ctx = document.getElementById("myChart");
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['2014年', '2015年', '2016年', '2017年', '2018年', '2019年', '2020年'],
datasets: datasets
},
});
Reference
이 문제에 관하여(Chart.js 값이 양수인지 음수인지 판단하여 그래프 색상 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kakuta_yu/items/cb81b4ca63fae1067672텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)