2017-05-31 23 views
2

我使用具有順序x軸的DC JS構建了折線圖。它的工作原理,除了在x軸上有一些外部填充,我似乎無法擺脫。我希望最左邊和最右邊的數據點與圖表的邊緣齊平,沒有填充。希望我不會錯過顯而易見的東西。DC JS:刪除具有序號比例x軸的折線圖的外部填充?

我認爲我錯誤地設置了x軸標尺。如果有一個數據集是這樣的:

var data = [ 
    { key: 'Monday', value: 3000000 }, 
    { key: 'Tuesday', value: 3100000 }, 
    { key: 'Wednesday', value: 3500000 }, 
    { key: 'Thursday', value: 3070000 }, 
    { key: 'Friday', value: 4500000 }, 
    { key: 'Saturday', value: 3003030 }, 
    { key: 'Sunday', value: 5010000 } 
]; 

這裏就是我與x軸刻度做:

var ordinalScale = d3.scale.ordinal().domain(['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']).rangeRoundBands([0,chartWidth]); 
chart.x(ordinalScale).xUnits(dc.units.ordinal); 

我也看了看序尺度D3的文檔,但不是招還沒有幫助。

這裏有一個截屏(外來填充標記爲紅色): http://imgur.com/a/zmfF4

這裏的工作JS提琴演示該問題: https://jsfiddle.net/qvp4fpzy/4/

回答

0

這是一個有點混亂,處理這兩種dc.js和d3 .js以範圍帶爲特色。

dc.js有自己內置的計算爲酒吧/行x位置,但如果X比例爲序,它會自動選擇.rangeBands

if (_chart.isOrdinal()) { 
     _x.rangeBands([0, _chart.xAxisLength()], _rangeBandPadding, 
         _chart._useOuterPadding() ? _outerRangeBandPadding : 0); 
    } else // ... 

source link

所以我不不要以爲你撥打.rangeRoundBands有什麼影響。 (應dc.js使用rangeRoundBands代替rangeBands?也許吧,但它沒有在這個問題上的重量)。

這是要影響third parameter to rangeBands,而這通過chart._outerRangeBandPadding()控制。 (忽略chart._useOuterPadding() - 這是向後兼容的東西。)

因此,所有你需要的這裏是

chart._outerRangeBandPadding(0); 

no outer padding

Working fork of your fiddle.

+0

這工作!非常感謝。 – nblocks