2015-05-21 84 views
0

我在chartjs中使用條形圖。在該條形圖欄寬度不一致。當條數(標籤)爲1時意味着單條顯示爲更大的寬度。它幾乎佔據畫布的整個寬度。Chart.js條形圖barWidth不一致

當巴數(標籤)是3個或更多,如果我嘗試使用「barValueSpacing」爲條形圖,它正在fine.But如果我儘量減少各條越來越重疊的瀏覽器是指其不響應。

在其他的圖表,例如「JQPLOT」欄的寬度自動調整,得到其不關心吧計數,因爲它有「barWidth」 option.So我想設置默認寬度在酒吧chart.js和我正在使用「ChartNew.js」library.Could你請任何人都幫我解決這個問題?

回答

0

發生了什麼事情是,當圖表寬度變得足夠小時,您的固定barValueSpacing水平翻轉您的酒吧(酒吧的右邊緣成爲左邊緣,反之亦然)。您需要通過擴展條形圖類型,根據圖表寬度動態設置barValueSpacing。

這裏是你如何做到這一點

var a = [1, 2, 3]; 
var data = { 
    labels: ["A", "B", "C"], 
    datasets: [{ 
     label: "My 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: a 
    }] 
}; 

Chart.types.Bar.extend({ 
    name: "BarAlt", 
    draw: function(){ 
     this.options.barValueSpacing = this.chart.width/5; 
     Chart.types.Bar.prototype.draw.apply(this, arguments); 
    } 
}); 

和提琴 - http://jsfiddle.net/9avv76vx/

上面一個是調整大小杆和下一個是正常的吧 - 我被分在圖表的寬度常數(5),但在現實生活中,您需要考慮數據點的數量併除以適當的一部分。

+0

謝謝你的寶貴迴應。它工作正常。我需要更多的解決方案。我正在使用ChartNew.js庫。 ChatNew.js庫提供了「* inGraphDataShow *」選項,用於顯示條形圖頂部的數據標籤以及餅圖。你能幫我用「* Chart.min.js *」實現「* inGraphDataShow *」選項嗎? – Suresh

+0

據我所知Chartjs沒有這個選項。您可以將表格(從服務器端或客戶端)分別放在圖表頂部。 – potatopeelings

+0

再次感謝你。我可以做到這一點。如何使用ChartNew.js重繪圖表? – Suresh

相關問題