2017-02-16 187 views
0

我想使用Chart.js在圖表中繪製水平線。但我無法做到。Chart.js使用限制線繪製堆積條形圖

我發現這個example,但我已經遇到了麻煩,將其轉換爲條形圖,因爲它是用點來確定在何處放置線和條形圖似乎並沒有使用「點」

var data = { 
 
    labels: ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"], 
 
    datasets: [{ 
 
     data: [12, 3, 2, 1, 8, 8, 2, 2, 3, 5, 7, 1] 
 
    }] 
 
}; 
 

 
var ctx = document.getElementById("LineWithLine").getContext("2d"); 
 

 
Chart.types.Line.extend({ 
 
    name: "LineWithLine", 
 
    initialize: function() { 
 
     Chart.types.Line.prototype.initialize.apply(this, arguments); 
 
    }, 
 
    draw: function() { 
 
     Chart.types.Line.prototype.draw.apply(this, arguments); 
 
     
 
     var point = this.datasets[0].points[this.options.lineAtIndex] 
 
     var scale = this.scale 
 
     console.log(this); 
 

 
     // draw line 
 
     this.chart.ctx.beginPath(); 
 
     this.chart.ctx.moveTo(scale.startPoint+12, point.y); 
 
     this.chart.ctx.strokeStyle = '#ff0000'; 
 
     this.chart.ctx.lineTo(this.chart.width, point.y); 
 
     this.chart.ctx.stroke(); 
 
     
 
     // write TODAY 
 
     this.chart.ctx.textAlign = 'center'; 
 
     this.chart.ctx.fillText("TODAY", scale.startPoint + 35, point.y+10); 
 
    } 
 
}); 
 

 
new Chart(ctx).LineWithLine(data, { 
 
    datasetFill : false, 
 
    lineAtIndex: 2 
 
});
<script src="http://www.chartjs.org/assets/Chart.min.js"></script> 
 
<div> 
 
    <canvas id="LineWithLine" width="600" height="400"></canvas> 
 
</div>

有沒有一種更好的方式在chart.js之2做到這一點?也許使用折線圖和條形圖組合或者是過度殺傷?

希望你們能幫助我想出解決辦法,我創建這個圖已經在使用CSS和Javascript,你可以看到如下:

enter image description here

在這個例子中,下限爲負值等等它在自己的實線以下繪製了自己,這可能會令人困惑,但主要的是該線被繪製爲我選擇的值。 :)

回答

1

如果仍然有這個問題,看看這個問題關於drawing a custom horizontal line in Chart.js 2

在回答我鏈接的queston,它被定義在chart.js之一個新的插件(在Chart.js更多的相關信息「的網站),使你畫一個條形圖和一條自定義線。還有一個jsfiddle可以更好地理解插件是如何工作的