Create a horizontal scrolling Chart.js line chart with a locked y axis - Javascript Chart.js

Javascript examples for Chart.js:Line Chart

Description

Create a horizontal scrolling Chart.js line chart with a locked y axis

Demo Code

ResultView the demo in separate window

<html>
   <head> 
      <title>line chart with ChartJS</title> 
      <meta name="viewport" content="width=device-width, initial-scale=1"> 
      <script type="text/javascript" src="https://rawgit.com/nnnick/Chart.js/v1.0.2/Chart.min.js"></script> 
      <style id="compiled-css" type="text/css">

.chartWrapper {/* w w w. j a v  a2 s.co  m*/
   position: relative;
}
.chartWrapper > canvas {
   position: absolute;
   left: 0;
   top: 0;
   pointer-events:none;
}
.chartAreaWrapper {
   width: 600px;
   overflow-x: scroll;
}


      </style> 
      <script type="text/javascript">
    window.onload=function(){
        var ctx = document.getElementById("myChart").getContext("2d");
        var data = {
            labels: ["January", "February", "March", "April", "May", "June", "July"],
            datasets: [
                {
                    label: "My First dataset",
                    fillColor: "rgba(220,220,220,0.2)",
                    strokeColor: "rgba(220,220,220,1)",
                    pointColor: "rgba(220,220,220,1)",
                    pointStrokeColor: "#fff",
                    pointHighlightFill: "#fff",
                    pointHighlightStroke: "rgba(220,220,220,1)",
                    data: [65, 59, 80, 81, 56, 55, 40]
                },
                {
                    label: "My Second dataset",
                    fillColor: "rgba(151,187,205,0.2)",
                    strokeColor: "rgba(151,187,205,1)",
                    pointColor: "rgba(151,187,205,1)",
                    pointStrokeColor: "#fff",
                    pointHighlightFill: "#fff",
                    pointHighlightStroke: "rgba(151,187,205,1)",
                    data: [28, 48, 40, 19, 86, 27, 90]
                }
            ]
        };
        new Chart(ctx).Line(data, {
            onAnimationComplete: function () {
                var sourceCanvas = this.chart.ctx.canvas;
                var copyWidth = this.scale.xScalePaddingLeft - 5;
                var copyHeight = this.scale.endPoint + 5;
                var targetCtx = document.getElementById("myChartAxis").getContext("2d");
                targetCtx.canvas.width = copyWidth;
                targetCtx.drawImage(sourceCanvas, 0, 0, copyWidth, copyHeight, 0, 0, copyWidth, copyHeight);
            }
        });
    }

      </script> 
   </head> 
   <body> 
      <div class="chartWrapper"> 
         <div class="chartAreaWrapper"> 
            <canvas id="myChart" height="300" width="1200"></canvas> 
         </div> 
         <canvas id="myChartAxis" height="300" width="0"></canvas> 
      </div>  
   </body>
</html>

Related Tutorials