테스트 사이트 - 개발 중인 베타 버전입니다

chart js 라인그래프 질문드립니다~!

tkrtkree 5년 전 조회 4,089

chart js 사용해서 라인 그래프 만들려고 하는데 결과가 아래 그림처럼 나오고 싶습니다.

 

그래프는 데이터값대로 나오고, 레이블과 데이터글자가 처음과 끝에만 표시되게 하고 싶은데요, 

 

</p>

<p><!DOCTYPE html></p>

<p><html lang="en"></p>

<p><head></p>

<p>    <meta charset="UTF-8"></p>

<p>    <meta name="viewport" content="width=device-width, initial-scale=1.0"></p>

<p>    <title>차트 테스트</title></p>

<p>    <script src="<a href="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>" target="_blank" rel="noopener noreferrer">https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script></a></p>

<p>    <style></p>

<p>        .graph-area{width:300px;height:125px;margin:20px auto 10px;}</p>

<p>        .label-area{display:flex;justify-content:space-between;margin:0 auto;}</p>

<p>        .label-area span{display:block;width:calc(100% / 6);font-size:11px; color: blue;text-align: center;opacity:0;}</p>

<p>        .label-area span:first-of-type,</p>

<p>        .label-area span:last-of-type{opacity:1;}</p>

<p>    </style></p>

<p></head></p>

<p><body></p>

<p>    <dl></p>

<p>        <dt>MSET LEVEL</dt></p>

<p>        <dd class="graph-area"></p>

<p>            <canvas id="re-mset-chart"></canvas>       </p>

<p>        </dd>    </p>

<p>        <dd class="label-area"></p>

<p>            <span>2018<br class="mo-br">10/15</span></p>

<p>            <span>2019<br class="mo-br">02/08</span></p>

<p>            <span>2019<br class="mo-br">06/19</span></p>

<p>            <span>2019<br class="mo-br">10/30</span></p>

<p>            <span>2019<br class="mo-br">12/30</span></p>

<p>            <span>2020<br class="mo-br">04/07</span></p>

<p>        </dd></p>

<p>    </dl></p>

<p> </p>

<p>    <script></p>

<p>        //MSET LEVEL</p>

<p>        var ctx = document.getElementById('re-mset-chart').getContext('2d');</p>

<p>        var chart = new Chart(ctx, {</p>

<p>            type: 'line',</p>

<p>            data: {</p>

<p>                labels: [['2018','10/15'], ['2019','02/08'], ['2019','06/19'], ['2019','10/30'], ['2019','12/30'], ['2020','04/07']],</p>

<p>                datasets: [{</p>

<p>                    label: 'MSET LEVEL',</p>

<p>                    borderColor: 'rgb(60, 65, 72)',</p>

<p>                    data: [5, 6, 6, 6, 7, 8],</p>

<p>                    LineTension:0, //직선차트</p>

<p>                    fill:false, //배경색 채우지 않음</p>

<p>                    pointRadius : '4',</p>

<p>                    pointBorderColor : 'rgb(60, 65, 72)',</p>

<p>                    pointBackgroundColor : 'white',</p>

<p>                    pointBorderWidth : '2', //pointBorder사이즈</p>

<p>                    pointHoverBorderWidth :'2', //hover시 pointBorder사이즈</p>

<p>                    pointHoverBackgroundColor : 'white', //hover시 pointBacground</p>

<p>                    </p>

<p>                }]</p>

<p>            },</p>

<p>            </p>

<p> </p>

<p>            options: {</p>

<p>                maintainAspectRatio : false,  //차트 비율 유지하지않음</p>

<p>                randing: true,</p>

<p>                tooltips: {</p>

<p>                enabled: false</p>

<p>                }, //hover시 보였던 툴팁 제거</p>

<p>                hover: {</p>

<p>                animationDuration: 0</p>

<p>                },</p>

<p>                //차트위에 값 나타내기</p>

<p>                animation: { </p>

<p>                duration: 1,</p>

<p>                onComplete: function () {</p>

<p>                    var chartInstance = this.chart,</p>

<p>                        ctx = chartInstance.ctx;</p>

<p>                    ctx.font = Chart.helpers.fontString(Chart.defaults.global.defaultFontSize, Chart.defaults.global.defaultFontStyle, Chart.defaults.global.defaultFontFamily);</p>

<p>                    ctx.fillStyle = 'rgb(60, 65, 72)';</p>

<p>                    ctx.textAlign = 'center';</p>

<p>                    ctx.textBaseline = 'bottom';</p>

<p> </p>

<p>                    this.data.datasets.forEach(function (dataset, i) {</p>

<p>                        var meta = chartInstance.controller.getDatasetMeta(i);</p>

<p>                        meta.data.forEach(function (bar, index) {</p>

<p>                            var data = dataset.data[index];                     </p>

<p>                            ctx.fillText(data, bar._model.x, bar._model.y - 5);</p>

<p>                        });</p>

<p>                    });</p>

<p>                }</p>

<p>                },</p>

<p>                legend: {</p>

<p>                    display: true,</p>

<p>                    labels: {</p>

<p>                    boxWidth: 0,</p>

<p>                    fontColor: 'rgba(0,0,0,0)', //제목 레이블 안보이게</p>

<p>                    fontSize: 20</p>

<p>                    }</p>

<p>                },</p>

<p>                scales: {</p>

<p>                    xAxes: [{</p>

<p>                        ticks: {</p>

<p>                            fontSize: 11, //x축 텍스트 폰트 사이즈</p>

<p>                            fontColor: 'rgba(0,0,0,0)', //x축 레이브 안보이게</p>

<p>                        },</p>

<p>                        gridLines: {</p>

<p>                            display:false,</p>

<p>                            lineWidth:0</p>

<p>                        }</p>

<p>                    }],</p>

<p>                    yAxes: [{</p>

<p>                        ticks: {</p>

<p>                            display: false, //y축 텍스트 삭제</p>

<p>                            beginAtZero: false, //y축값이 0부터 시작</p>

<p>                        },</p>

<p>                        gridLines: {</p>

<p>                            display:false,</p>

<p>                            lineWidth:0</p>

<p>                        }   </p>

<p>                    }]</p>

<p>                }</p>

<p>            }</p>

<p>        });</p>

<p>        </p>

<p>        </p>

<p>        </p>

<p>    </script></p>

<p> </p>

<p></body></p>

<p></html></p>

<p>

 

여기까지는 했는데 데이터 가운데를 지우는 방법을 모르겠네요 ㅜ 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

익숙한코드가 아니라서 ㅠ

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인