2016-04-04 10 views
1

x ekseninde tarih göstermesi gereken bir çizgi grafik yapıyorum. Grafik, tarih tıklamaları biraz karışıklık dışında gayet iyi çalışıyor. Bir tarih atlıyor! Sorunu burada yineledim: https://jsfiddle.net/Tanakrit/k0vr99fd/NVD3: X Ekseni Olarak Tarihi Kullanırken Tuhaf Davranışlar

Yukarıdaki örnekte, x ekseni olması gerektiğinde sadece 7 kenara sahip olduğunu görebilirsiniz. 8. Onları tickFormat içine yazdırın, göründüğünü öğrendim İki Mar 25 olmak, bu yüzden neredeyse sadece 7 keneler gösteriyor. beni atma ne

tickFormat yılında işlevi d girişini nasıl olur onlar aslında grafiğine verdi x değerler gibi görünmüyordu çünkü emin değilim olmasıdır.

cevap

1

Böyle yapabilirsiniz:

var data_full = data();//get all data 
var secondDate = d3.max(data_full[0].values, function(d){ return new Date(d.x)});//get the max date 
var firstDate = d3.min(data_full[0].values, function(d){return new Date(d.x)}); get min date 
var between = []; 
//get all dates between max and min date 
while (firstDate <= secondDate) { 
    between.push(new Date(firstDate)); 
    firstDate.setDate(firstDate.getDate() + 1); 
} 
chart.xAxis 
    .axisLabel('Time (days)') 
    .rotateLabels(-55) 
     .tickValues(between)//set all dates manually with tickValues. 
    .tickFormat(function(d) { 
     return d3.time.format('%b %d')(new Date(d)); 
    }) 
    ; 

çalışma kod here

İlgili konular