2016-07-07 6 views
5

d3 3.x में, मैं आम तौर पर परिभाषित करने और इस तरह के कोड के साथ एक ब्रश सेट अप करना होगा:मैं डी 3 v4.0 `ब्रश` में स्केल कैसे लागू करूं?

let brushScale = d3.scaleLinear() 
    .clamp(true) 
    .domain([0, 100]) 
    .range([height, 0]); 

let brush = d3.brush() 
    .brushY(brushScale) 
    .extent([0, 10]); 

d3 4.x में, मैं ब्रश करने के लिए पैमाने जोड़ने के लिए एक इसी समारोह नहीं दिख रहा। एक पैमाने के बिना, मुझे समझ में नहीं आता कि मैं ब्रश की समग्र सीमा कैसे निर्दिष्ट करता हूं।

उत्तर

13

extent का अर्थ 4 से v3 से बदल गया है।

extent in v3 ब्रश क्षेत्र का मतलब है, यानी ब्रश द्वारा निर्धारित कुल क्षेत्रफल में चयन सीमा।

extent in v4 अब ब्रश द्वारा निर्धारित कुल क्षेत्र को संदर्भित करता है, जबकि selection चयनित क्षेत्र है, जिसे पहले extent कहा जाता था। (ध्यान दें कि चयन d3.brushSelection के माध्यम से पहुँचा जा सकता है, लेकिन और अधिक सामान्यतः एक ब्रश ईवेंट हैंडलर में d3.event.selection के रूप में पहुँचा जा सकता है

इसके अलावा, d3.v4 में, तराजू नहीं रह गया है ब्रश के साथ सीधे जुड़े होते हैं;। इसके बजाय, एक ब्रश केवल संचालित ।। एक पिक्सेल क्षेत्र में तराजू (ब्रश सेटअप पर) बाहर रास्ते पर (ब्रश ईवेंट हैंडलर्स द्वारा लौटाए गए मूल्यों के लिए) में रास्ते पर लागू किया जाना चाहिए और तो क्या हुआ, पहले से था d3.v3 में:

let brush = d3.brush() .brushY(brushScale) .extent([0, 10]);

d3.v4 में कुछ ऐसा हो जाता है:

let brush = d3.brushY() .extent([[0, brushScale.range()[0]], [sliderWidth, brushScale.range()[1]]]); let brushSel = svg.append('g').call(brush); brush.move(brushSel, [sliderScale(0), sliderScale(10)]);

ध्यान दें कि बजाय extent (v3) के साथ चयनित क्षेत्र की स्थापना की है, हम move() (v4) एक छोटा पिक्सेल श्रृंखला के लिए चयनित क्षेत्र।

+0

इनमें से कुछ महत्वपूर्ण परिवर्तनों को व्यक्त करने के लिए धन्यवाद। –

1
इसके बजाय इस बात का

:

let brush = d3.brush() 
    .brushY(brushScale) 
    .extent([0, 10]); 

ऐसा करने के बाद आप एक वाई आयाम ब्रश हैं:

let brush = d3.brushY() 
    .extent([0, 10]); 
संबंधित मुद्दे