2013-04-04 85 views
6

.ticks()似乎不適用於我的條形圖。有人可以看一下嗎?.ticks()需要什麼工作?

Here's the fiddle。我在物體開頭附近的x軸上設置刻度:

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

Err ...你可以擴展一下你的意思是'不工作'小提琴看起來在x軸上有滴答聲。 – d3noob 2013-04-04 18:14:50

+0

我在xAxis上設置了「ticks()」爲3,但默認情況下(在這種情況下,每個類別都有一個勾號)優先。即使明確指定了滴答數,我仍然在某處讀過d3仍然「猜測」的地方。但是,我仍然希望在指定一個低至3的數字後,它會選擇一個小於12的數字(這是本例中的最大數字)。 [這裏是文檔的相關部分](https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-ticks)。 – 2013-04-04 18:17:48

+0

正如它在文檔中所說的那樣,不,它不僅僅是你指定的數字。你可以使用'tickValues()'函數明確指定刻度標記。 – 2013-04-04 18:24:51

回答

5

刻度只能取2,5,10的倍數而不是任何數字。這就是爲什麼你可能有問題。請查看自定義刻度的這個答案。 link

+2

謝謝你指出,我忘了它。實際上,我在1月份回覆了這個帖子,因爲看起來是同一類型的問題:24個類別的條形圖,每個小時一個。不幸的是,'.ticks(5)'也不適合我。 – 2013-04-05 13:12:38

5

我沒有足夠的聲望爲第一篇文章添加評論,但我認爲存在誤解。

軸上的標籤必須是2,5或10的倍數。滴答功能可以取任何數字,但它會修改該數字以確保軸是2,5或10的倍數。

例如,如果域爲0-100,並且您想要4個刻度(0,33.33,66.66,100),則它將舍入爲6以給出「漂亮」數字(0,20,40,60, 80,100)。然而,如果你將tick設置爲3,它將會兌現,你將擁有0,50和100.

Here是Mike對此行爲的解釋。

現在還不清楚爲什麼如果你將蜱數設爲5,爲什麼它不能計算0,25,50,75,100,但我認爲我會試圖澄清至少一些混淆。

2

您可以使用過濾來決定哪些蜱顯示:

的來自上述剪掉從this example

相關問題