2017-01-30 5 views
7

मैं समांतर समन्वय स्रोत कोड here को नवीनतम d3js संस्करण (d3js 4.5.0) में माइग्रेट कर रहा हूं। मैं इस लाइन के लिए अटक कर रहा हूँ:डी 3 जेएस वी 4: स्केलऑर्डिनल में रेंज पॉइंट्स नहीं हैं()

var x = d3.scale.ordinal().rangePoints([0, width], 1) 

ऐसा लगता है कि d3js v4 में rangePoints समारोह अब मौजूद नहीं है। मैं डी 3 में बदल सकता हूँ। scaleOrdinal(), लेकिन इसमें केवल range फ़ंक्शन है, rangePoints फ़ंक्शन नहीं। इसके लिए कोई सुराग?

उत्तर

10

डी 3 v4 में, दो नए तराजू बनाया गया: scaleBand और scalePoint, जो अब सुविधाओं है कि scale.ordinal (उनमें rangePoints के अलावा) संस्करण 3 में था के कुछ है।

यह changelog में दर्ज है: बिंदु तराजू:

इसी तरह, ordinal.rangePoints और ordinal.rangeRoundPoints तरीकों क्रमसूचक पैमाने का एक नया उपवर्ग के साथ प्रतिस्थापित किया गया है। 3.x में निम्न कोड:

var x = d3.scale.ordinal() 
.domain(["a", "b", "c"]) 
.rangePoints([0, width]); 

4,0 में इस के बराबर है:

var x = d3.scalePoint() 
.domain(["a", "b", "c"]) 
.range([0, width]); 

इसलिए, पैमाने तुम यहाँ की जरूरत है scalePoint है:

प्वाइंट तराजू हैं बैंडविड्थ के साथ बैंड स्केल का एक संस्करण शून्य पर तय किया गया। प्वाइंट स्केल आमतौर पर एक सामान्य या स्पष्ट आयाम के साथ स्कैटरप्लॉट के लिए उपयोग किया जाता है। padding को

var x = scalePoint() 
    .range([0, width]) 
    .padding(.1); 

वेतन ध्यान:

इस प्रकार, के लिए अपने पैमाने बदल एक अंक के पैमाने में, range केवल सीमा सरणी, अब और नहीं गद्दी स्वीकार करता है।

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