faccio spesso questo impilando assi multipli, ciascuno con una personalizzazione .tickFormat()
.
Se sto mettendo etichette tra le date, io spesso fare qualcosa di simile:
@timeDaysAxisLabels = d3.svg.axis()
.scale(@timescale)
.orient('bottom')
.ticks(d3.time.hour.utc, 12) # I want ticks at noon, easiest to just get them ever 12 hours
.tickFormat((d) =>
# only draw labels at noon, between the date boundaries
if d.getUTCHours() == 12
# draw the label!
formatter = d3.time.format.utc('%a %d %b') # "Mon 12 Apr"
return formatter(d)
else
# not noon, don't draw anything
return null)
.tickSize(0)
.tickPadding(30)
Devo dire anche creare un asse indipendente senza le etichette a tutti, e un non-zero .tickSize()
per disegnare effettivamente le zecche, ma questo blocco sopra posiziona le etichette delle date al centro della "colonna".
fonte
2014-03-17 23:37:43
il primo non avrebbe aiutato nel mio caso, perché l'asse è cartina. – oluckyman
In tutti questi casi è necessario ripristinare i parametri appropriati dopo lo zoom. –