2013-05-03 17 views
5

Ho cercato nella documentazione ufficiale di d3.js, così come qui, in StackOverflow, per trovare un modo per aggiungere tickValues ​​personalizzati ad un asse della scala temporale; Tuttavia, non ho inciampato in tutta la documentazione che conferma che qualcosa del genere è possibile.d3js set tickValues ​​per l'asse della scala temporale

Quindi, in sostanza, ho un asse della scala del tempo e mi piacerebbe mostrare ore specifiche ad es. Mi piacerebbe fare qualcosa di simile:

xHourAxis 
    .ticks(d3.time.hours, 2) 
    .tickFormat(d3.time.format('%I %p')) 
    .tickValues(2, 4, 6, 8, 10, 12) ; 

quindi voglio visualizzare i valori tick ogni 2 ore, ma non tra cui la prima (12:00) e l'ultimo (12:00).

Qualcuno sa se c'è qualche soluzione per questo?

+1

Non specificare 'ticks()' se si utilizza anche 'tickValues ​​()'. I valori di tick specificati devono essere valori temporali, ma a parte questo dovrebbe funzionare. Come non funziona per te? –

+0

Semplicemente non mostra alcun segno di spunta per il valore che passo; anche se mi sono liberato delle zecche() – ppoliani

+2

Come ho già detto, è necessario passare gli oggetti data e non solo gli interi. –

risposta

0

Quasi lì, ma il codice ha due problemi: prima i valori di tick devono essere specificati in un array e in secondo luogo questi valori devono essere oggetti di date di Javascript. vale a dire basta fornire una serie di date per tickValues modo che il codice sarebbe simile a questa:

xHourAxis 
.tickFormat(d3.time.format('%I %p')) 
.tickValues([new Date(2000,10,5), new Date(2005,2,7), new Date(2007,11,11)]); 

Si noti inoltre che non è necessario chiamare il ticks() se avete intenzione di specificare in seguito valori personalizzati.

Problemi correlati