λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Vue.js

[Vue.js] Chart.js 차트 데이터 0 인 κ°’ 숨기기

by Jo__y 2022. 11. 8.

Chart.js ν”ŒλŸ¬κ·ΈμΈμ„ 처음 μ‚¬μš©ν• λ•ŒλŠ” custom 이 쉽지 μ•Šμ•„ λ³΄μ˜€λŠ”λ°,
이것 저것 μ μš©ν•˜λ‹€ λ³΄λ‹ˆ μ—­μ‹œλ‚˜ λ‚΄κ°€ 잘 λͺ°λžλ˜ κ²ƒμ΄μ—ˆλ‹€.
λˆ„μ μ°¨νŠΈλ₯Ό λ§Œλ“€κ³  λ‚˜μ„œ μ•„λž˜μ™€ 같이 Mon ~ Sun κΉŒμ§€ 값이 0인 λ°μ΄ν„°κΉŒμ§€ ν‘œμ‹œν•˜λŠ” 것은 λΆˆν•„μš”ν•˜λ‹€ μƒκ°λ˜μ—ˆλ‹€.

이전 κ²Œμ‹œκΈ€μ—μ„œ total 값을 λ‚˜νƒ€λ‚΄λŠ” 것을 ν™œμš©ν•˜μ—¬ 0 인 데이터듀을 숨겨볼 것이닀.

tooltips: {
       callbacks: {
             footer: function (data) {   // λˆ„μ  총합을 λ‚˜νƒ€λ‚΄λŠ” μ½”λ“œ
                var total = 0;
                for (var i = 0; i < data.length; i++) {
                  total += data[i].xLabel;
                }
                return "Total: " + total;
              },
              // μΆ”κ°€λœ μ½”λ“œ
              label: function (tooltipItem, data) {
                console.log(tooltipItem);
                console.log(data);
              },
       },
},

μš°μ„  console.log 을 톡해 tooltipItem κ³Ό data κ°€ μ–΄λ–€ 값을 가지고 μžˆλŠ”μ§€ 좜λ ₯ν•΄ λ³΄μ•˜λ‹€.

A λ§‰λŒ€ κ·Έλž˜ν”„λ₯Ό 선택 ν–ˆμ„ λ•Œ
tooltipItem κ°’

Mon ~ Sun κΉŒμ§€ A 의 값듀을 좜λ ₯ν•˜μ˜€λ‹€.
μ—¬κΈ°μ„œ datasetIndex : 0 은 Mon 이고 datasetIndex : 6 은 Sun 을 가리킨닀.
xLabel 이 0 μ΄λ―€λ‘œ 이 데이터도 μˆ¨κ²¨μ•Όν•œλ‹€.

data κ°’

tooltipItem 이 μ„ νƒν•œ λ§‰λŒ€ κ·Έλž˜ν”„ 데이터λ₯Ό 가지고 μžˆλ‹€λ©΄,
data λŠ” μš”μΌλ³„ 전체 데이터λ₯Ό 가지고 μžˆλ‹€.

이λ₯Ό μ΄μš©ν•΄μ„œ ν•„μš” μ—†λŠ” 값이 0인 데이터λ₯Ό μˆ¨κ²¨λ³΄λ„λ‘ ν•˜κ² λ‹€.

tooltips: {
       callbacks: {
             footer: function (data) {   // λˆ„μ  총합을 λ‚˜νƒ€λ‚΄λŠ” μ½”λ“œ
                var total = 0;
                for (var i = 0; i < data.length; i++) {
                  total += data[i].xLabel;
                }
                return "Total: " + total;
              },
              // μΆ”κ°€λœ μ½”λ“œ
              label: function (tooltipItem, data) {
                var value = null;    // null 둜 μ΄ˆκΈ°ν™”λ₯Ό 톡해 값이 μ—†μœΌλ©΄ μ°¨νŠΈμ— 그렀지지 μ•ŠμŒ
                if (tooltipItem.xLabel > 0) {
                  value =
                    data.datasets[tooltipItem.datasetIndex].label +
                    " : " +
                    tooltipItem.xLabel;
                }
                return value;
              },
       },
},

값이 μžˆλŠ” λ°μ΄ν„°λ§Œ ν‘œν˜„ ν•  수 μžˆκ²Œλ˜μ—ˆλ‹€.

λ°˜μ‘ν˜•

λŒ“κΈ€