在我的d3折線圖中,我只想繪製繪製數據的刻度。這證明是一個帶時間戳的問題,雖然我得到:D3圖表 - 使用tickValues進行時間提供「translate(NaN,0)」
d3.js:7651 Error: <g> attribute transform: Expected number, "translate(NaN,0)".
。
我想將字符串轉換爲tickValues
數組中的數字,但我不能,因爲它有一個冒號。有任何想法嗎?
// Hard coded data
scope.data = [
{date: '12:00', glucoseLevel: 400},
{date: '15:00', glucoseLevel: 200},
{date: '18:00', glucoseLevel: 300},
{date: '23:00', glucoseLevel: 400}
];
var parseDate = d3.timeParse('%I:%M');
scope.data.forEach(function(d) {
d.date = parseDate(d.date);
d.glucoseLevel = +d.glucoseLevel;
});
var x = d3.scaleTime()
.range([0, width]);
var xAxis = d3.axisBottom(x)
.tickValues(['12:00', '15:00', '18:00', '23:00']);
// Add the X Axis
svg.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0,' + height + ')')
.call(xAxis);
謝謝!但我仍然得到'錯誤:屬性變換:期望的數字,「translate(NaN,0)」。http://dpaste.com/3NPEZ66 –
dman
@dman:好吧,那是因爲在你修改後的代碼中,您已將創建X軸的代碼移動到將X軸時間轉換爲字符串的代碼上方,以將其轉換爲日期時間。正如我在答覆的第一行中所寫的,您將X值指定爲次數,所以您還必須將X軸刻度值指定爲次數。 –