2012-10-27 26 views
30

पर टिक बदलें, मैं d3.js. को समझने की कोशिश कर रहा हूं। धुरी को परिभाषित करते समय, मैं एक्स-अक्ष पर कस्टम लेबलिंग कैसे प्राप्त कर सकता हूं। उदाहरण के लिए, डिफ़ॉल्ट लेबलिंग मैं मिलता है: मैं वर्तमान में यह सीख रहा हूँ और आपूर्ति की आधिकारिक उदाहरण से कोड (थोड़ा संशोधित) पर काम कर रहाएक्स-अक्ष

|------|------|------|------|------|------| .... 
20 26  32 38  44  50  56 

:

|------|------|------|------|------|------| 
20 30  40  50  60  70  80 

जबकि, मैं की तरह कुछ चाहते

var xAxis = d3.svg.axis().scale(x).tickPadding(7).orient("bottom"); 
var yAxis = d3.svg.axis().scale(y).tickPadding(5).orient("left"); 

उत्तर

57

मात्रात्मक तराजू के लिए डिफ़ॉल्ट टिक 2, 5 और 10 के गुणक हैं। आप 6 के गुणक चाहते हैं; हालांकि असामान्य, यह अंतर्निहित डेटा की प्रकृति के आधार पर समझ में आता है। तो, आप को बढ़ाने या टिक गिनती कम करने के लिए axis.ticks उपयोग कर सकते हैं, जबकि, यह हमेशा 2, 5 और 10 के गुणकों वापस आ जाएगी - नहीं 6.

आप 6 के गुणकों चाहते हैं, आप टिक मान निर्दिष्ट करने axis.tickValues उपयोग कर सकते हैं स्पष्ट रूप से। यह आमतौर पर d3.range के संयोजन के साथ प्रयोग किया जाता है। उदाहरण के लिए:

xAxis.tickValues(d3.range(20, 80, 4)); 

आप गतिशील रूप से मूल्यों की गणना, एक्स-पैमाने के डोमेन का उपयोग निम्नतम और उच्चतम मान प्राप्त करने के लिए करना चाहते हैं। यह भी ध्यान रखें कि सीमा की ऊपरी सीमा अनन्य है, इसलिए उपर्युक्त उदाहरण में सबसे बड़ा टिक मान 76 है। आप सीमा के स्टॉप वैल्यू को थोड़ा बड़ा (उदाहरण के लिए, 81) बनाकर ऊपरी बाध्य समावेशी बना सकते हैं।

+0

हाहा! इसे समझ लिया था और खुद को सवाल का जवाब देने के लिए यहां आया था, लेकिन वैसे भी आपकी पोस्ट वास्तव में सहायक थी। धन्यवाद! :) – WeaklyTyped

+6

@mbostock, मेरे पास मात्रात्मक पैमाने में 24 श्रेणियां हैं, लेकिन मेरे xAxis में .ticks (6) जोड़ना कुछ नहीं करता है - सभी 24 अभी भी दिखाए जाते हैं। कोई विचार? –

+0

[डी 3 स्रोत कोड] (https://github.com/mbostock/d3/blob/f59fc64a20d57fe08be9fb6e53ab0022f6f6c732/test/svg/axis-test.js) अब कहता है कि टिकसबडिवाइड को बहिष्कृत किया गया है और कुछ भी नहीं करता है। – Seri

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^