2013-04-04 11 views
6

.ticks() non sembra funzionare sul mio grafico a barre. Qualcuno può dare un'occhiata?Che cosa serve a .ticks() per funzionare?

Here's the fiddle. Ho impostato zecche sul ascisse vicino all'inizio dell'oggetto:

xAxis = d3.svg.axis().scale(xScale).orient("bottom").ticks(3), 
+0

Err ... Potresti espandere un po 'cosa intendi con' non funziona 'Il violino sembra avere tick sull'asse x. – d3noob

+0

Ho impostato 'ticks()' su 3 su xAxis, tuttavia il default (in questo caso, un segno di spunta per ogni categoria) sta avendo la precedenza. Ho letto da qualche parte che d3 ancora "indovina", anche quando specifichi esplicitamente il numero di zecche. Ma comunque, mi aspetterei che dopo aver specificato un numero a partire da 3, sceglierebbe un numero inferiore a 12 (che è il massimo in questo caso). [Ecco la parte rilevante dei documenti] (https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-ticks). –

+0

Come dice il doc, no, non prende solo il numero specificato. Puoi usare la funzione 'tickValues ​​()' per specificare esplicitamente i segni di graduazione. –

risposta

5

zecche possono solo prendere multiplo di 2,5,10 non qualsiasi numero. Questo è il motivo per cui potresti avere problemi. Si prega di dare un'occhiata a questa risposta per le zecche personalizzate. link

+2

Grazie per avermelo fatto notare, me ne sono dimenticato. In realtà ho commentato quel post in gennaio, per apparentemente lo stesso tipo di problema: un grafico a barre con 24 categorie, una per ogni ora. Sfortunatamente, '.ticks (5)' non funziona neanche per me. –

5

Non ho abbastanza reputazione per aggiungere un commento a quel primo post ma penso ci sia un equivoco.

Le etichette sull'asse devono essere un multiplo di 2, 5 o 10. La funzione zecche può richiedere un numero qualsiasi, ma modificherà tale numero per assicurarsi che l'asse sia un multiplo di 2, 5 o 10.

Ad esempio, se il dominio è 0-100 e si desidera 4 tick (0, 33.33, 66.66, 100) verrà arrotondato fino a 6 per fornire numeri "carini" (0, 20, 40, 60, 80, 100). Tuttavia, se imposti i segni di spunta su 3, lo onorerai e avrai 0, 50 e 100.

Here è un post con la spiegazione di Mike di questo comportamento.

Non mi è ancora chiaro perché non contando 0, 25, 50, 75, 100 se si impostano i tick su 5 ma ho pensato di provare a chiarire almeno parte della confusione.

2

è possibile utilizzare un filtro di per decidere quale le zecche da visualizzare:

Il snipped sopra viene da this example.