D3.js 5 - scale

d3-scale




d

تعد المقاييس تجريدًا مناسبًا لمهمة أساسية في التصور: تعيين بُعد من البيانات المجردة على تمثيل مرئي. على الرغم من أنه يتم استخدامه غالبًا لتشفير البيانات الكمية ، مثل تعيين قياس بالأمتار إلى موضع بالبكسل للنقاط في مخطط التشتت ، يمكن أن تمثل المقاييس أي تشفير مرئي تقريبًا ، مثل الألوان المتباينة ، عرض الخطوط ، أو حجم الرمز. يمكن أيضًا استخدام المقاييس مع أي نوع من البيانات تقريبًا ، مثل البيانات الفئوية المسماة أو البيانات المنفصلة التي تتطلب فواصل معقولة.

للحصول على بيانات كمية continuous ، عادة ما تريد مقياس خطي . (للحصول على بيانات السلاسل الزمنية ، مقياس زمني .) إذا كان التوزيع يستدعي ذلك ، ففكر في تحويل البيانات باستخدام مقياس power أو log . قد يساعد المقياس الكمي على التمييز عن طريق تقريب البيانات المستمرة إلى مجموعة ثابتة من القيم المنفصلة ؛ وبالمثل ، يحسب المقياس الكمي الكميات من مجتمع العينة ، ويسمح لك مقياس العتبة بتحديد فترات الاستراحة التعسفية في البيانات المستمرة.

بالنسبة للبيانات الترتيبية المنفصلة (مرتبة) أو الفئوية (غير مرتبة) ، يحدد المقياس الترتيبي تعيينًا واضحًا من مجموعة من قيم البيانات إلى مجموعة مناظرة من السمات المرئية (مثل الألوان). تُعد جداول band والنقاط ذات الصلة مفيدة للبيانات الترتيبية لترميز الموضع ، مثل الأشرطة الموجودة في مخطط شريطي أو نقاط في مخطط فرعي قاطع.

لا يوفر هذا المخزون أنظمة ألوان ؛ انظر d3-scale-chromatic لمخططات الألوان المصممة للعمل مع مقياس d3.

المقاييس ليس لها تمثيل مرئي جوهري. ومع ذلك ، يمكن لمعظم المقاييس generate علامات format علامات مرجعية format للمساعدة في بناء المحاور.

للحصول على مقدمة أطول ، راجع هذه البرامج التعليمية الموصى بها:

تثبيت

إذا كنت تستخدم NPM ، npm install d3-scale . خلاف ذلك ، قم بتنزيل أحدث إصدار . يمكنك أيضًا التحميل مباشرةً من d3js.org ، إما كمكتبة مستقلة أو كجزء من D3 . يتم دعم بيئات AMD و CommonJS و vanilla. في الفانيليا ، يتم تصدير d3 العالمية:

<script src="https://d3js.org/d3-array.v1.min.js"></script>
<script src="https://d3js.org/d3-collection.v1.min.js"></script>
<script src="https://d3js.org/d3-color.v1.min.js"></script>
<script src="https://d3js.org/d3-format.v1.min.js"></script>
<script src="https://d3js.org/d3-interpolate.v1.min.js"></script>
<script src="https://d3js.org/d3-time.v1.min.js"></script>
<script src="https://d3js.org/d3-time-format.v2.min.js"></script>
<script src="https://d3js.org/d3-scale.v2.min.js"></script>
<script>

var x = d3.scaleLinear();

</script>

(يمكنك حذف التنسيق d3-time و d3-time إذا كنت لا تستخدم d3.scaleTime أو d3.scaleUtc .)

مرجع API

موازين مستمرة

تقيس المقاييس المستمرة domain إدخال كمي مستمر إلى range إخراج مستمر. إذا كان النطاق رقميًا أيضًا ، فقد يتم inverted التعيين. لا يتم إنشاء مقياس مستمر مباشرة ؛ بدلاً من ذلك ، جرّب مقياس Sequential خطي أو power أو log أو Identity أو وقت أو Sequential .

Source مستمر ( قيمة )

عند إعطاء قيمة من domain ، تُرجع القيمة المقابلة من range . إذا كانت القيمة المحددة خارج المجال ، ولم يتم تمكين clamping ، فقد يتم استنباط التعيين بحيث تكون القيمة التي يتم إرجاعها خارج النطاق. على سبيل المثال ، لتطبيق تشفير الموضع:

var x = d3.scaleLinear()
    .domain([10, 130])
    .range([0, 960]);

x(20); // 80
x(50); // 320

أو لتطبيق تشفير اللون:

var color = d3.scaleLinear()
    .domain([10, 100])
    .range(["brown", "steelblue"]);

color(20); // "#9a3439"
color(50); // "#7b5167"
مستمر . عكس ( القيمة ) Source

عند إعطاء قيمة من range ، تُرجع القيمة المقابلة من domain . الانعكاس مفيد للتفاعل ، لنقل لتحديد قيمة البيانات المقابلة لموضع الماوس. على سبيل المثال ، لعكس تشفير الموضع:

var x = d3.scaleLinear()
    .domain([10, 130])
    .range([0, 960]);

x.invert(80); // 20
x.invert(320); // 50

إذا كانت القيمة المعطاة خارج النطاق ، ولم يتم تمكين clamping ، فقد يتم استنباط التعيين بحيث تكون القيمة التي يتم إرجاعها خارج المجال. يتم دعم هذه الطريقة فقط إذا كان النطاق رقميًا. إذا لم يكن النطاق رقميًا ، فتُرجع NaN.

للحصول على قيمة صالحة y في النطاق ، يساوي المستمر ( مستمر .invert ( y )) تقريبًا y ؛ وبالمثل ، بالنسبة لقيمة س س صالحة في المجال ، فإن .invert المستمر ( مستمر ( س )) يساوي تقريباً x . قد لا يكون المقياس والعكس صحيحًا بسبب قيود دقة الفاصلة العائمة.

مستمر . المجال ([ المجال ]) Source

إذا تم تحديد المجال ، قم بتعيين مجال المقياس على مجموعة الأرقام المحددة. يجب أن يحتوي الصفيف على عنصرين أو أكثر. إذا كانت العناصر الموجودة في الصفيف المحدد ليست أرقامًا ، فسيتم إجبارها على الأرقام. إذا لم يتم تحديد المجال ، فتُرجع نسخة من النطاق الحالي للمقياس.

على الرغم من أن المقاييس المستمرة تحتوي عادةً على قيمتين لكل منهما في مجالها ونطاقها ، فإن تحديد أكثر من قيمتين ينتج عنه مقياس تدريجي. على سبيل المثال ، لإنشاء Diverging يتشابك بين الأبيض والأحمر للقيم السالبة ، والأبيض والأخضر للقيم الموجبة ، قل:

var color = d3.scaleLinear()
    .domain([-1, 0, 1])
    .range(["red", "white", "green"]);

color(-0.5); // "rgb(255, 128, 128)"
color(+0.5); // "rgb(128, 192, 128)"

داخليا ، يقوم المقياس التدريجي بإجراء بحث ثنائي عن مفسر النطاق المقابل لقيمة المجال المحددة. وبالتالي ، يجب أن يكون المجال بترتيب تصاعدي أو تنازلي. إذا كان للمجال والنطاق أطوال مختلفة N و M ، فلن يتم ملاحظة سوى العناصر الأولى (N ، M) في كل منهما.

مستمر . المدى ([ المدى ]) Source

إذا تم تحديد النطاق ، قم بتعيين نطاق المقياس على صفيف القيم المحدد. يجب أن يحتوي الصفيف على عنصرين أو أكثر. بخلاف domain ، لا يجب أن تكون العناصر الموجودة في الصفيف المحدد أرقامًا ؛ ستعمل أي قيمة مدعومة من قبل interpolator الأساسي ، على الرغم من ملاحظة أن النطاقات الرقمية مطلوبة inverted . إذا لم يتم تحديد النطاق ، فتُرجع نسخة من النطاق الحالي للمقياس. انظر interpolator لمزيد من الأمثلة.

مستمر . rangeRound ([ range ]) Source

يعيّن نطاق المقياس إلى صفيف محدد من القيم مع ضبط interpolator المقياس على interpolateRound . هذه طريقة ملائمة تعادل:

continuous
    .range(range)
    .interpolate(d3.interpolateRound);

أحيانًا يكون محاور التقريب مفيدًا في تجنب الآثار المضادة للحواف ، على الرغم من مراعاة أنماط "crispEdges" التي تظهر الشكل. لاحظ أن هذا المحرف لا يمكن استخدامه إلا مع النطاقات الرقمية.

مستمر . المشبك ( المشبك ) Source

إذا تم تحديد المشبك ، قم بتمكين أو تعطيل التثبيت وفقًا لذلك. إذا تم تعطيل التثبيت وتمرير المقياس بقيمة خارج domain ، فقد يرجع المقياس قيمة خارج range خلال الاستقراء. إذا تم تمكين التثبيت ، تكون قيمة الإرجاع للمقياس دائمًا في نطاق المقياس. ينطبق inverted بالمثل على inverted . فمثلا:

var x = d3.scaleLinear()
    .domain([10, 130])
    .range([0, 960]);

x(-10); // -160, outside range
x.invert(-160); // -10, outside domain

x.clamp(true);
x(-10); // 0, clamped to range
x.invert(-160); // 10, clamped to domain

إذا لم يتم تحديد clamp ، فتُرجع ما إذا كان المقياس حاليًا يربط القيم إلى داخل النطاق.

مستمر . أقحم ( أقحم ) Source

إذا تم تحديد interpolate ، فقم بتعيين مصنع interpolator range المقياس. يتم استخدام مصنع interpolator هذا لإنشاء محرف لكل زوج متجاور من القيم من النطاق ؛ يقوم هؤلاء المحرفون بعد ذلك بتعيين معلمة مجال طبيعي t في [0 ، 1] إلى القيمة المقابلة في النطاق. إذا لم يكن المصنع محددًا ، فتُرجع مصنع الاستيفاء الحالي للمقياس ، والذي يُفترض به interpolate . انظر d3-interpolate لمزيد من المحققين.

على سبيل المثال ، ضع في الاعتبار مقياس ألوان متباين مع ثلاثة ألوان في النطاق:

var color = d3.scaleLinear()
    .domain([-100, 0, +100])
    .range(["red", "white", "green"]);

يتم إنشاء اثنين من المترجمين الداخليين داخل النطاق ، أي ما يعادل:

var i0 = d3.interpolate("red", "white"),
    i1 = d3.interpolate("white", "green");

من الأسباب الشائعة لتحديد مترجم مخصص هو تغيير مساحة لون الاستيفاء. على سبيل المثال ، لاستخدام HCL :

var color = d3.scaleLinear()
    .domain([10, 100])
    .range(["brown", "steelblue"])
    .interpolate(d3.interpolateHcl);

أو لـ Cubehelix مع جاما مخصصة:

var color = d3.scaleLinear()
    .domain([10, 100])
    .range(["brown", "steelblue"])
    .interpolate(d3.interpolateCubehelix.gamma(3));

ملاحظة: قد يقوم interpolate بإعادة استخدام قيم الإرجاع . على سبيل المثال ، إذا كانت قيم النطاق عبارة عن كائنات ، فسوف يقوم محرف القيم دائمًا بإرجاع نفس الكائن ، مع تعديله في مكانه. إذا تم استخدام المقياس لتعيين سمة أو نمط ، فهذا عادة ما يكون مقبولاً (ومستحسن الأداء) ؛ ومع ذلك ، إذا كنت بحاجة إلى تخزين قيمة الإرجاع الخاصة بالمقياس ، فيجب عليك تحديد مترجم خاص بك أو عمل نسخة بالشكل المناسب.

مستمر . القراد ( العد )

إرجاع عدد القيم التمثيلية تقريبًا من مجال المقياس. إذا لم يتم تحديد عدد ، فسيتم تعيين قيمته الافتراضية إلى 10. وتكون قيم التجزئة التي تم إرجاعها متباعدة بشكل موحد ، ولديها قيم قابلة للقراءة من قبل الإنسان (مثل مضاعفات القوى 10) ، ومضمونة لتكون ضمن نطاق المجال. غالبًا ما تستخدم علامات التجزئة لعرض الخطوط المرجعية أو علامات التجزئة ، جنبًا إلى جنب مع البيانات المرئية. العد المحدد هو مجرد تلميح ؛ قد يعرض المقياس قيمًا أكثر أو أقل وفقًا للمجال. انظر أيضا ticks مجموعة d3.

مستمر . tickFormat ([ عددمحدد ]]) Source

تُرجع دالة تنسيق الأرقام المناسبة لعرض قيمة علامة ، وحساب الدقة المناسبة تلقائيًا استنادًا إلى الفاصل الزمني الثابت بين قيم التجزئة. يجب أن يكون للعدد المحدد نفس قيمة العد المستخدم لإنشاء generate .

يسمح المحدد الاختياري بتنسيق مخصص حيث يتم ضبط دقة التنسيق تلقائيًا بواسطة المقياس بما يتناسب مع الفاصل الزمني للقراد. على سبيل المثال ، لتنسيق النسبة المئوية للتغيير ، يمكنك القول:

var x = d3.scaleLinear()
    .domain([-1, 1])
    .range([0, 960]);

var ticks = x.ticks(5),
    tickFormat = x.tickFormat(5, "+%");

ticks.map(tickFormat); // ["-100%", "-50%", "+0%", "+50%", "+100%"]

إذا كان المحدد يستخدم نوع التنسيق ، فسيُرجع المقياس تنسيق بادئة SI استنادًا إلى أكبر قيمة في المجال. إذا كان المحدد يحدد بالفعل دقة ، فإن هذه الطريقة تعادل الإعدادات المحلية .format .

مستمر . لطيفة ([ العد ]) Source

يمتد domain بحيث يبدأ وينتهي بقيم دائرية لطيفة. تقوم هذه الطريقة عادةً بتعديل نطاق المقياس ، وقد تمدد فقط الحدود إلى أقرب قيمة مستديرة. تتيح وسيطة تعداد العلامات الاختيارية تحكمًا أكبر في حجم الخطوة المستخدم لتمديد الحدود ، مما يضمن أن generate التي تم إرجاعها ستغطي المجال تمامًا. يكون التنقيح مفيدًا إذا تم حساب المجال من البيانات ، قل باستخدام extent ، وقد يكون غير منتظم. على سبيل المثال ، بالنسبة إلى مجال [0.201479 ... ، 0.996679 ...] ، قد يكون النطاق الجميل [0.2 ، 1.0]. إذا كان المجال يحتوي على أكثر من قيمتين ، فإن قياس المجال يؤثر فقط على القيمة الأولى والأخيرة. انظر أيضا d3-array's tickStep .

يؤدي ضبط مقياس إلى تعديل المجال الحالي فقط ؛ لا يتم تلقائيًا تحديد المجالات اللطيفة التي تم تعيينها لاحقًا باستخدام domain . يجب عليك إعادة ضبط النطاق بعد تعيين النطاق الجديد ، إذا كنت ترغب في ذلك.

مستمر . نسخة () Source

إرجاع نسخة دقيقة من هذا المقياس. لن تؤثر التغييرات في هذا المقياس على المقياس المرتجع ، والعكس صحيح.

المقاييس الخطية

D3. scaleLinear () Source

continuous جديدًا مع domain الوحدة [0 ، 1] ، range الوحدة [0 ، 1] ، تم تعطيل clamping interpolate clamping . تعد المقاييس الخطية اختيارًا افتراضيًا جيدًا للبيانات الكمية المستمرة لأنها تحافظ على الاختلافات النسبية. يمكن التعبير عن كل قيمة نطاق y كدالة لقيمة المجال x : y = mx + b .

ميزان القوة

تشبه مقاييس الطاقة المقاييس الخطية ، باستثناء التحويل الأسي الذي يتم تطبيقه على قيمة مجال الإدخال قبل حساب قيمة نطاق الإخراج. يمكن التعبير عن كل قيمة نطاق y كدالة لقيمة المجال x : y = mx ^ k + b ، حيث k هي قيمة exponent . تدعم مقاييس القدرة أيضًا قيم المجال السلبية ، وفي هذه الحالة يتم ضرب قيمة الإدخال وقيمة الإخراج الناتجة ب -1.

D3. scalePow () Source

continuous جديدًا مع domain الوحدة [0 ، 1] ، range الوحدة [0 ، 1] ، exponent 1 ، interpolator interpolate وتعطيل clamping . (لاحظ أن هذا مقياس خطي بشكل فعال حتى تقوم بتعيين أس مختلف.)

الأسرى ( القيمة ) Source

انظر continuous .

أسير الحرب . عكس ( القيمة ) Source

انظر inverted .

أسير الحرب . الأس ([ الأس ]) Source

إذا تم تحديد الأس ، قم بتعيين الأس الحالي على القيمة الرقمية المحددة. إذا لم يتم تحديد الأس ، فسوف تُرجع الأس الحالي ، والذي يتم تعيينه افتراضيًا إلى 1. (لاحظ أن هذا مقياس خطي فعليًا حتى تقوم بتعيين أس مختلف).

أسير الحرب . المجال ([ المجال ]) Source

انظر domain . domain .

أسير الحرب . المدى ([ المدى ]) Source

انظر range .

أسير الحرب . rangeRound ([ range ]) Source

انظر continuous.rangeRound .

أسير الحرب . المشبك ( المشبك ) Source

انظر clamping . clamping .

أسير الحرب . أقحم ( أقحم ) Source

انظر interpolator . interpolator .

أسير الحرب . القراد ( العد ) Source

انظر generate .

أسير الحرب . tickFormat ([ عددمحدد ]]) Source

انظر format .

أسير الحرب . لطيفة ([ العد ]) Source

انظر continuous.nice . continuous.nice .

أسير الحرب . نسخة () Source

انظر continuous.copy .

D3. scaleSqrt () Source

continuous power continuous جديدًا مع power الوحدة [0 ، 1] ، range الوحدة [0 ، 1] ، exponent 0.5 ، interpolator interpolate وتعطيل clamping . هذه طريقة ملائمة تعادل d3.scalePow().exponent(0.5) .

سجل المقاييس

تشبه مقاييس السجل المقاييس الخطية ، باستثناء التحويل اللوغاريتمي الذي يتم تطبيقه على قيمة مجال الإدخال قبل حساب قيمة نطاق الإخراج. يمكن التعبير عن التعيين إلى قيمة النطاق y كدالة لقيمة المجال x : y = m log ( x ) + b .

كما log (0) = -∞ ، يجب أن يكون نطاق نطاق السجل موجبًا أو سالبًا تمامًا ؛ يجب ألا يتضمن المجال أو يتقاطع مع الصفر. يحتوي مقياس السجل مع مجال موجب على سلوك محدد بشكل جيد للقيم الإيجابية ، ومقياس السجل مع مجال سلبي يحتوي على سلوك محدد جيدًا للقيم السلبية. (بالنسبة للمجال السلبي ، يتم ضرب قيم المدخلات والمخرجات ضمنيًا ب -1.) سلوك المقياس غير محدد إذا قمت بتمرير قيمة سالبة إلى مقياس سجل بمجال موجب أو العكس.

D3. scaleLog () Source

continuous جديدًا مع domain [1 ، 10] ، range الوحدة [0 ، 1] ، base 10 ، interpolator interpolate وتعطيل clamping .

سجل ( القيمة ) Source

انظر continuous .

سجل عكس ( القيمة ) Source

انظر inverted .

سجل قاعدة ([ قاعدة ]) Source

إذا تم تحديد الأساس ، فقم بتعيين الأساس لهذا المقياس اللوغاريتمي على القيمة المحددة. إذا لم يتم تحديد الأساس ، فسوف تُرجع القاعدة الحالية ، والتي ستكون الإعدادات الافتراضية إلى 10.

سجل المجال ([ المجال ]) Source

انظر domain . domain .

سجل المدى ([ المدى ]) Source

انظر range .

سجل rangeRound ([ range ]) Source

انظر continuous.rangeRound .

سجل المشبك ( المشبك ) Source

انظر clamping . clamping .

سجل أقحم ( أقحم ) Source

انظر interpolator . interpolator .

سجل القراد ( العد ) Source

مثل. generate ، ولكن مخصصة لمقياس السجل. إذا كانت base عددًا صحيحًا ، فإن المسافات التي يتم إرجاعها تكون متباعدة بشكل موحد داخل كل قوة عدد صحيح من القاعدة ؛ خلاف ذلك ، يتم إرجاع علامة واحدة لكل قوة قاعدة. ويضمن أن تكون علامات التجزئة التي تم إرجاعها ضمن نطاق المجال. إذا كانت أوامر الحجم في domain أكبر من العدد ، فسيتم إرجاع علامة واحدة على الأكثر لكل قوة. خلاف ذلك ، يتم log.tickFormat ترشيح قيم التجزئة ، لكن لاحظ أنه يمكنك استخدام log.tickFormat لتصفية عرض علامات التجزئة. إذا لم يتم تحديد عدد ، فسيتم تعيين القيمة الافتراضية إلى 10.

سجل tickFormat ([ عددمحدد ]]) Source

مثل format ، ولكن مخصصة لمقياس السجل. عادةً ما يكون للعدد المحدد نفس القيمة المستخدمة في إنشاء generate . إذا كان هناك عدد كبير جدًا من علامات التجزئة ، فقد يقوم المنسق بإرجاع السلسلة الفارغة لبعض علامات التجزئة ؛ ومع ذلك ، لاحظ أن علامات التجزئة لا تزال تظهر. لتعطيل التصفية ، حدد عدد Infinity. عند تحديد عدد ، يمكنك أيضًا توفير محدد تنسيق أو وظيفة تنسيق. على سبيل المثال ، للحصول على منسق علامات التجزئة الذي سيعرض 20 علامة من العملات ، قل log.tickFormat(20, "$,f") . إذا لم يكن المحدد محددًا بدقة محددة ، فسيتم تعيين الدقة تلقائيًا بواسطة المقياس ، مع إعادة التنسيق المناسب. يوفر هذا طريقة ملائمة لتحديد التنسيق الذي سيتم تعيين دقته تلقائيًا بواسطة المقياس.

سجل لطيفة () Source

مثل continuous.nice ، باستثناء يمتد المجال إلى عدد صحيح من القوى base . على سبيل المثال ، بالنسبة إلى مجال [0.201479 ... ، 0.996679 ...] ، وقاعدة 10 ، يكون المجال الجميل هو [0.1 ، 1]. إذا كان المجال يحتوي على أكثر من قيمتين ، فإن قياس المجال يؤثر فقط على القيمة الأولى والأخيرة.

سجل نسخة () Source

انظر continuous.copy .

مقاييس الهوية

موازين الهوية هي حالة خاصة من المقاييس الخطية حيث المجال والمجال متطابقان ؛ وبالتالي فإن المقياس وطريقة عكسه هي وظيفة الهوية. تكون هذه المقاييس مفيدة أحيانًا عند العمل مع إحداثيات البكسل ، على سبيل المثال بالتزامن مع محور أو فرشاة. لا تدعم مقاييس الهوية continuous.rangeRound أو clamping أو interpolator .

D3. scaleIdentity () Source

لإنشاء مقياس هوية جديد باستخدام domain الوحدة [0 ، 1] range الوحدة [0 ، 1].

جداول زمنية

المقاييس الزمنية هي متغير من المقاييس الخطية التي لها مجال زمني: يتم إجبار قيم المجال على dates بدلاً من الأرقام ، inverted التاريخ بالمثل تاريخًا. تقوم المقاييس الزمنية بتنفيذ ticks بناءً على فترات التقويم ، مما يؤدي إلى تخفيف الألم الناتج عن إنشاء محاور للنطاقات الزمنية.

على سبيل المثال ، لإنشاء تشفير موضع:

var x = d3.scaleTime()
    .domain([new Date(2000, 0, 1), new Date(2000, 0, 2)])
    .range([0, 960]);

x(new Date(2000, 0, 1,  5)); // 200
x(new Date(2000, 0, 1, 16)); // 640
x.invert(200); // Sat Jan 01 2000 05:00:00 GMT-0800 (PST)
x.invert(640); // Sat Jan 01 2000 16:00:00 GMT-0800 (PST)

بالنسبة لقيمة صالحة y في النطاق ، فإن الوقت ( الوقت .invert ( y )) يساوي y ؛ وبالمثل ، بالنسبة لقيمة س الصحيحة في المجال ، فإن الوقت .invert ( الوقت ( س )) يساوي x . طريقة عكس مفيدة للتفاعل ، لنقل لتحديد القيمة في المجال الذي يتوافق مع موقع بكسل تحت الماوس.

D3. scaleTime () Source

يقوم بإنشاء مقياس زمني جديد مع domain [2000-01-01 ، 2000-01-02] ، range الوحدة [0 ، 1] ، interpolator interpolate وتعطيل clamping .

الوقت ( القيمة ) Source

انظر continuous .

الوقت عكس ( القيمة ) Source

انظر inverted .

الوقت المجال ([ المجال ]) Source

انظر domain . domain .

الوقت المدى ([ المدى ]) Source

انظر range .

الوقت rangeRound ([ range ]) Source

انظر continuous.rangeRound .

الوقت المشبك ( المشبك ) Source

انظر clamping . clamping .

الوقت أقحم ( أقحم ) Source

انظر interpolator . interpolator .

الوقت القراد ( العد ) Source
الوقت القراد ([ الفاصل الزمني ])

إرجاع تواريخ الممثل من نطاق المقياس. تكون قيم التجزئة التي تم إرجاعها متباعدة بشكل موحد (غالبًا) ، ولها قيم معقولة (مثل كل يوم في منتصف الليل) ، ومضمونة لتكون ضمن نطاق المجال. غالبًا ما تستخدم علامات التجزئة لعرض الخطوط المرجعية أو علامات التجزئة ، جنبًا إلى جنب مع البيانات المرئية.

يمكن تحديد عدد اختياري للتأثير على عدد علامات التجزئة التي يتم إنشاؤها. إذا لم يتم تحديد عدد ، فسيتم تعيينه افتراضيًا على 10. العدد المحدد هو مجرد تلميح ؛ قد يعرض المقياس قيمًا أكثر أو أقل وفقًا للمجال. على سبيل المثال ، لإنشاء عشرة علامات افتراضية ، قل:

var x = d3.scaleTime();

x.ticks(10);
// [Sat Jan 01 2000 00:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 03:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 06:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 09:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 12:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 15:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 18:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 21:00:00 GMT-0800 (PST),
//  Sun Jan 02 2000 00:00:00 GMT-0800 (PST)]

تعتبر الفواصل الزمنية التالية علامات التجزئة التلقائية:

  • 1- و 5 و 15 و 30 ثانية.
  • 1- و 5 و 15 و 30 دقيقة.
  • 1- و 3 و 6 و 12 ساعة.
  • 1 و 2 يوم.
  • أسبوع 1.
  • 1- و 3 أشهر.
  • 1 سنة.

بدلا من العد ، قد يتم تحديد الفاصل الزمني بشكل صريح. لتقليم علامات التجزئة التي تم إنشاؤها لفترة زمنية معينة ، استخدم interval.every . على سبيل المثال ، لإنشاء علامات التجزئة على فترات زمنية minute 15 minute :

var x = d3.scaleTime()
    .domain([new Date(2000, 0, 1, 0), new Date(2000, 0, 1, 2)]);

x.ticks(d3.timeMinute.every(15));
// [Sat Jan 01 2000 00:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 00:15:00 GMT-0800 (PST),
//  Sat Jan 01 2000 00:30:00 GMT-0800 (PST),
//  Sat Jan 01 2000 00:45:00 GMT-0800 (PST),
//  Sat Jan 01 2000 01:00:00 GMT-0800 (PST),
//  Sat Jan 01 2000 01:15:00 GMT-0800 (PST),
//  Sat Jan 01 2000 01:30:00 GMT-0800 (PST),
//  Sat Jan 01 2000 01:45:00 GMT-0800 (PST),
//  Sat Jan 01 2000 02:00:00 GMT-0800 (PST)]

بدلاً من ذلك ، قم بتمرير وظيفة اختبار إلى interval.filter :

x.ticks(d3.timeMinute.filter(function(d) {
  return d.getMinutes() % 15 === 0;
}));

ملاحظة: في بعض الحالات ، مثل تحديد علامات اليوم ، يمكن أن يؤدي تحديد خطوة إلى تباعد غير منتظم بين علامات التجزئة لأن الفواصل الزمنية لها طول متباين.

الوقت tickFormat ([ عددمحدد ]]) Source
الوقت tickFormat ([ الفاصل الزمنيالمحدد ]])

إرجاع دالة تنسيق وقت مناسبة لعرض قيم ticks . يتم تجاهل عدد أو الفاصل الزمني المحدد حاليا ، ولكن يتم قبول للتناسق مع المقاييس الأخرى مثل format . إذا تم تحديد محدد التنسيق ، فإن هذه الطريقة تعادل format . إذا لم يتم تحديد المحدد ، فسيتم إرجاع تنسيق الوقت الافتراضي. يختار التنسيق الزمني المتعدد النطاق الافتراضي تمثيلًا قابلاً للقراءة البشرية استنادًا إلى التاريخ المحدد كما يلي:

  • %Y - لحدود السنة ، مثل 2011 .
  • %B - لحدود الشهر ، مثل February .
  • %b %d - للحدود الأسبوعية ، مثل Feb 06 .
  • %a %d - لحدود اليوم ، مثل Mon 07 .
  • %I %p - للحدود الزمنية ، مثل 01 AM .
  • %I:%M - لحدود الدقائق ، مثل 01:23 .
  • :%S - للحدود الثانية ، مثل :45 .
  • .%L - ميلي ثانية لكل الأوقات الأخرى ، مثل .012 .

على الرغم من أنه غير معتاد إلى حد ما ، فإن هذا السلوك الافتراضي له فائدة في توفير السياق المحلي والعالمي: على سبيل المثال ، تنسيق سلسلة من علامات التجزئة مثل [11 مساءً ، الاثنين 07 ، 01 ص] يكشف عن معلومات حول الساعات والتواريخ واليوم في وقت واحد ، بدلاً من فقط الساعات [11 مساءً ، 12 صباحًا ، 01 صباحًا]. اطلع d3-time-format إذا كنت ترغب في استعادة تنسيق الوقت الشرطي الخاص بك.

الوقت لطيفة ([ العد ]) Source
الوقت لطيفة ([ الفاصل الزمنيالخطوة ]])

يمتد domain بحيث يبدأ وينتهي بقيم دائرية لطيفة. تقوم هذه الطريقة عادةً بتعديل نطاق المقياس ، وقد تمدد فقط الحدود إلى أقرب قيمة مستديرة. انظر continuous.nice لمزيد من المعلومات.

تتيح وسيطة تعداد العلامات الاختيارية تحكمًا أكبر في حجم الخطوة المستخدم لتمديد الحدود ، مما يضمن أن ticks التي تم إرجاعها ستغطي المجال تمامًا. بدلاً من ذلك ، قد يتم تحديد فاصل زمني لتعيين علامات التجزئة بشكل صريح. إذا تم تحديد فاصل زمني ، فقد يتم أيضًا تحديد خطوة اختيارية لتخطي بعض العلامات. على سبيل المثال ، time.nice(d3.timeSecond, 10) بتوسيع المجال حتى عشر ثوانٍ (0 ، 10 ، 20 ، إلخ ). انظر ticks interval.every ticks لمزيد من التفاصيل.

يكون التنقيح مفيدًا إذا تم حساب المجال من البيانات ، قل باستخدام extent ، وقد يكون غير منتظم. على سبيل المثال ، بالنسبة إلى مجال [2009-07-13T00: 02 ، 2009-07-13T23: 48] ، فإن المجال الجميل هو [2009-07-13 ، 2009-07-14]. إذا كان المجال يحتوي على أكثر من قيمتين ، فإن قياس المجال يؤثر فقط على القيمة الأولى والأخيرة.

D3. scaleUtc () Source

أي ما يعادل time ، لكن مقياس الوقت الذي تم إرجاعه يعمل في التوقيت العالمي المتفق عليه بدلاً من التوقيت المحلي.

جداول متسلسلة

تشبه المقاييس التسلسلية ، مثل Diverging ، Diverging continuous حيث أنها تحدد مجال إدخال رقمي مستمر لنطاق إخراج مستمر. ومع ذلك ، بخلاف المقاييس المستمرة ، يتم إصلاح نطاق إخراج المقياس المتسلسل بواسطة المحرف الخاص به وغير قابل للتكوين. هذه المقاييس لا تعرض أساليب inverted أو range أو range أو interpolator .

D3. scaleSequential ( interpolator ) Source

يبني مقياس تسلسلي جديد مع وظيفة interpolator المعطى. عند تطبيق المقياس ، سيتم استدعاء المترجم بقيمة عادة في النطاق [0 ، 1] ، حيث يمثل 0 القيمة الدنيا و 1 يمثل الحد الأقصى للقيمة. على سبيل المثال ، لتطبيق مقياس قوس قزح HSL النصح:

var rainbow = d3.scaleSequential(function(t) {
  return d3.hsl(t * 360, 1, 0.5) + "";
});

ترميز d3.interpolateRainbow الأكثر جمالياً وفعالاً من حيث الإدراك هو استخدام d3.interpolateRainbow :

var rainbow = d3.scaleSequential(d3.interpolateRainbow);
Source ( القيمة ) Source

انظر continuous .

متسلسل . المجال ([ المجال ]) Source

انظر domain . domain . لاحظ أن مجال المقياس التسلسلي يجب أن يكون رقميًا ويجب أن يحتوي على قيمتين بالضبط.

متسلسل . المشبك ([ المشبك ]) Source

انظر clamping . clamping .

متسلسل . مترجم ([ محرف ]) Source

إذا تم تحديد محرف ، قم بضبط محكم المقياس على الوظيفة المحددة. إذا لم يتم تحديد interpolator ، فتُرجع المحرف الحالي للمقياس.

متسلسل . نسخة () Source

انظر continuous.copy .

مقاييس متباعدة

تشبه المقاييس المتباينة ، مثل Sequential ، Sequential continuous حيث أنها تحدد مجال إدخال رقمي مستمر لنطاق إخراج مستمر. ومع ذلك ، بخلاف المقاييس المستمرة ، يتم إصلاح نطاق إخراج المقياس المتباعد بواسطة محرفه غير القابل للتكوين. هذه المقاييس لا تعرض أساليب inverted أو range أو range أو interpolator .

D3. scaleDiverging ( محقق ) Source

يبني مقياسًا جديدًا متباعدًا مع وظيفة interpolator المحددة. عند تطبيق المقياس ، سيتم استدعاء المترجم بقيمة عادة في النطاق [0 ، 1] ، حيث يمثل 0 القيمة السالبة القصوى ، ويمثل 0.5 القيمة المحايدة ، بينما يمثل 1 القيمة الموجبة القصوى. على سبيل المثال ، باستخدام d3.interpolateSpectral :

var spectral = d3.scaleDiverging(d3.interpolateSpectral);
تباعد ( القيمة ) Source

انظر continuous .

متباعد . المجال ([ المجال ]) Source

انظر domain . domain . لاحظ أن مجال النطاق المتباعد يجب أن يكون رقميًا ويجب أن يحتوي على ثلاث قيم تمامًا. المجال الافتراضي هو [0 ، 0.5 ، 1].

متباعد . المشبك ([ المشبك ]) Source

انظر clamping . clamping .

متباعد . مترجم ([ محرف ]) Source

إذا تم تحديد محرف ، قم بضبط محكم المقياس على الوظيفة المحددة. إذا لم يتم تحديد interpolator ، فتُرجع المحرف الحالي للمقياس.

متباعد . نسخة () Source

انظر continuous.copy .

تحديد المقاييس

تشبه المقاييس الكمية المقاييس الخطية ، إلا أنها تستخدم نطاقًا منفصلًا بدلاً من النطاق المستمر. ينقسم مجال الإدخال المستمر إلى مقاطع موحدة استنادًا إلى عدد القيم في ( أي أصل العلاقة) في نطاق الإخراج. يمكن التعبير عن كل قيمة نطاق y كدالة خطية كمية لقيمة المجال x : y = m round (x) + b . انظر bl.ocks.org/4060606 للحصول على مثال.

D3. scaleQuantize () Source

يبني مقياسًا كميًا جديدًا باستخدام domain الوحدة [0 ، 1] range الوحدة [0 ، 1]. وبالتالي ، المقياس الكمي الافتراضي يكافئ الدالة Math.round .

تحديد ( القيمة ) Source

عند إعطاء قيمة في domain الإدخال ، تُرجع القيمة المقابلة في range الإخراج. على سبيل المثال ، لتطبيق تشفير اللون:

var color = d3.scaleQuantize()
    .domain([0, 1])
    .range(["brown", "steelblue"]);

color(0.49); // "brown"
color(0.51); // "steelblue"

أو تقسيم المجال إلى ثلاثة أجزاء متساوية في الحجم مع قيم نطاق مختلفة لحساب عرض حد مناسب:

var width = d3.scaleQuantize()
    .domain([10, 100])
    .range([1, 2, 4]);

width(20); // 1
width(50); // 2
width(80); // 4
كمي . invertExtent ( القيمة ) Source

إرجاع مدى القيم في domain [ x0 ، x1 ] للقيمة المقابلة في range : معكوس quantize . هذه الطريقة مفيدة للتفاعل ، لنقل لتحديد القيمة في المجال الذي يتوافق مع موقع بكسل تحت الماوس.

var width = d3.scaleQuantize()
    .domain([10, 100])
    .range([1, 2, 4]);

width.invertExtent(2); // [40, 70]
كمي . المجال ([ المجال ]) Source

إذا تم تحديد المجال ، فقم بتعيين نطاق المقياس على صفيف مكون من عنصرين محددين. إذا كانت العناصر الموجودة في الصفيف المحدد ليست أرقامًا ، فسيتم إجبارها على الأرقام. إذا لم يتم تحديد المجال ، فتُرجع النطاق الحالي للمقياس.

كمي . المدى ([ المدى ]) Source

إذا تم تحديد النطاق ، قم بتعيين نطاق المقياس على صفيف القيم المحدد. قد يحتوي الصفيف على أي عدد من القيم المنفصلة. لا يلزم أن تكون العناصر الموجودة في الصفيف المحدد أرقامًا ؛ أي قيمة أو نوع ستعمل. إذا لم يتم تحديد النطاق ، فتُرجع النطاق الحالي للمقياس.

كمي . القراد ( العد ) Source

أي ما يعادل generate .

كمي . tickFormat ([ عددمحدد ]]) Source

أي ما يعادل format .

كمي . لطيفة () Source

أي ما يعادل continuous.nice . continuous.nice .

كمي . نسخة () Source

إرجاع نسخة دقيقة من هذا المقياس. لن تؤثر التغييرات في هذا المقياس على المقياس المرتجع ، والعكس صحيح.

جداول الكم

تقيس المقاييس الكمية نطاق إدخال العينات إلى نطاق منفصل. يعتبر المجال مستمرًا وبالتالي فإن المقياس سيقبل أي قيمة إدخال معقولة ؛ ومع ذلك ، يتم تحديد المجال كمجموعة منفصلة من قيم العينات. يحدد عدد القيم في (أصل) نطاق الإخراج عدد الكميات التي سيتم حسابها من المجال. لحساب الكميات ، يتم فرز المجال ومعالجته على أنه مجموعة من القيم المنفصلة ؛ رؤية الكم صفيف quantile . انظر bl.ocks.org/8ca036b3505121279daf للحصول على مثال.

D3. scaleQuantile () Source

إنشاء مقياس كمية جديد مع domain فارغ range فارغ. المقياس الكمي غير صالح حتى يتم تحديد مجال ونطاق.

الكمية ( القيمة ) Source

عند إعطاء قيمة في domain الإدخال ، تُرجع القيمة المقابلة في range الإخراج.

كمية . invertExtent ( القيمة ) Source

يُرجع نطاق القيم في domain [ x0 ، x1 ] للقيمة المقابلة في range : معكوس quantile . هذه الطريقة مفيدة للتفاعل ، لنقل لتحديد القيمة في المجال الذي يتوافق مع موقع بكسل تحت الماوس.

كمية . المجال ([ المجال ]) Source

إذا تم تحديد المجال ، قم بتعيين مجال المقياس الكمي على المجموعة المحددة من القيم الرقمية المنفصلة. يجب ألا يكون الصفيف فارغًا ، ويجب أن يحتوي على قيمة رقمية واحدة على الأقل ؛ يتم تجاهل القيم NaN والقيم الفارغة وغير المحددة ولا تعتبر جزءًا من مجتمع العينة. إذا كانت العناصر الموجودة في الصفيف المحدد ليست أرقامًا ، فسيتم إجبارها على الأرقام. يتم فرز نسخة من مجموعة الإدخال وتخزينها داخليًا. إذا لم يتم تحديد المجال ، فتُرجع النطاق الحالي للمقياس.

كمية . المدى ([ المدى ]) Source

إذا تم تحديد النطاق ، قم بتعيين القيم المنفصلة في النطاق. يجب ألا يكون الصفيف فارغًا ، وقد يحتوي على أي نوع من القيمة. يحدد عدد القيم في (النطاق الأساسي ، أو الطول) لصفيف النطاق عدد الكميات التي يتم حسابها. على سبيل المثال ، لحساب الأرباع ، يجب أن يكون النطاق عبارة عن صفيف من أربعة عناصر مثل [0 ، 1 ، 2 ، 3]. إذا لم يتم تحديد النطاق ، فتُرجع النطاق الحالي.

كمية . الكميلات () Source

إرجاع العتبات الكمية. إذا كان range يحتوي على قيم منفصلة ، فسيحتوي الصفيف المرتجع على عتبات n - 1. يتم اعتبار القيم الأقل من العتبة الأولى في الكمية الأولى ؛ القيم أكبر من أو تساوي العتبة الأولى ولكن أقل من العتبة الثانية تكون في الكمية الثانية ، وهكذا. داخليا ، يتم استخدام مجموعة العتبات مع bisect للعثور على كمية الإخراج المرتبطة بقيمة الإدخال المحددة.

كمية . نسخة () Source

إرجاع نسخة دقيقة من هذا المقياس. لن تؤثر التغييرات في هذا المقياس على المقياس المرتجع ، والعكس صحيح.

جداول العتبة

تشبه المقاييس الحدودية المقاييس الكمية ، إلا أنها تسمح لك بتعيين مجموعات فرعية عشوائية من المجال لقيم منفصلة في النطاق. لا يزال مجال الإدخال مستمرًا ، وينقسم إلى شرائح استنادًا إلى مجموعة من القيم الحدية. انظر bl.ocks.org/3306362 للحصول على مثال.

D3. scaleThreshold () Source

لإنشاء مقياس حد جديد مع domain الافتراضي [0.5] range الافتراضي [0 ، 1]. وبالتالي ، فإن مقياس العتبة الافتراضي مكافئ لوظيفة Math.round للأرقام ؛ على سبيل المثال ، عتبة (0.49) بإرجاع 0 ، وإرجاع عتبة (0.51) 1.

عتبة ( القيمة ) Source

عند إعطاء قيمة في domain الإدخال ، تُرجع القيمة المقابلة في range الإخراج . فمثلا:

var color = d3.scaleThreshold()
    .domain([0, 1])
    .range(["red", "white", "green"]);

color(-1);   // "red"
color(0);    // "white"
color(0.5);  // "white"
color(1);    // "green"
color(1000); // "green"
العتبة . invertExtent ( القيمة ) Source

تُرجع مدى القيم في domain [ x0 ، x1 ] للقيمة المقابلة في range ، ممثلة التعيين العكسي من نطاق إلى مجال. هذه الطريقة مفيدة للتفاعل ، لنقل لتحديد القيمة في المجال الذي يتوافق مع موقع بكسل تحت الماوس. فمثلا:

var color = d3.scaleThreshold()
    .domain([0, 1])
    .range(["red", "white", "green"]);

color.invertExtent("red"); // [undefined, 0]
color.invertExtent("white"); // [0, 1]
color.invertExtent("green"); // [1, undefined]
العتبة . المجال ([ المجال ]) Source

إذا تم تحديد المجال ، فقم بتعيين مجال المقياس على صفيف القيم المحدد. يجب أن تكون القيم مرتبة تصاعديًا ، أو أن سلوك المقياس غير معرف. عادة ما تكون القيم أرقامًا ، ولكن ستعمل أي قيم مرتبة بشكل طبيعي (مثل السلاسل) ؛ يمكن استخدام مقياس عتبة لترميز أي نوع يتم طلبه. إذا كان عدد القيم في نطاق المقياس هو N + 1 ، يجب أن يكون عدد القيم في مجال المقياس هو N. إذا كان هناك أقل من N في المجال ، فسيتم تجاهل القيم الإضافية في النطاق. إذا كان هناك أكثر من N عناصر في المجال ، فقد يعود المقياس غير معرف لبعض المدخلات. إذا لم يتم تحديد المجال ، فتُرجع النطاق الحالي للمقياس.

العتبة . المدى ([ المدى ]) Source

إذا تم تحديد النطاق ، قم بتعيين نطاق المقياس على صفيف القيم المحدد. إذا كان عدد القيم في نطاق المقياس هو N ، فيجب أن يكون عدد القيم في نطاق المقياس هو N + 1. إذا كان هناك أقل من N + 1 من العناصر في النطاق ، فقد يعود المقياس غير محدد لبعض المدخلات. إذا كان هناك أكثر من عنصر N + 1 في النطاق ، فسيتم تجاهل القيم الإضافية. لا يلزم أن تكون العناصر الموجودة في الصفيف المحدد أرقامًا ؛ أي قيمة أو نوع ستعمل. إذا مجموعة لم يتم تحديد النطاق الحالي يعود مقياس ل.

العتبة . نسخة () Source

إرجاع نسخة دقيقة من هذا المقياس. لن تؤثر التغييرات في هذا المقياس على المقياس المرتجع ، والعكس صحيح.

الموازين العادية

على عكس continuous ، فإن continuous الترتيبية لها مجال ونطاق منفصلان. على سبيل المثال ، قد يرسم المقياس الترتيبي مجموعة من الفئات المسماة إلى مجموعة من الألوان ، أو يحدد المواضع الأفقية للأعمدة في مخطط العمود.

D3. scaleOrdinal ([ مجموعة ]) Source

يبني نطاق ترتيبي الجديد مع فارغة domain ومحدد range . إذا لم يتم تحديد نطاق ، فسيتم تعيينه افتراضيًا إلى الصفيف الفارغ ؛ دوماً إرجاع مقياس ترتيبي غير معروف حتى يتم تعريف نطاق غير فارغ.

ترتيبي ( القيمة ) Source

عند إعطاء قيمة في domain الإدخال ، تُرجع القيمة المقابلة في range الإخراج . إذا كان إعطاء قيمة ليست في نطاق من domain ، إرجاع unknown . أو ، إذا كانت القيمة المجهولة implicit (القيمة الافتراضية) ، فستتم إضافة القيمة ضمنيًا إلى المجال ويتم تعيين القيمة المتوفرة التالية في النطاق على القيمة ، بحيث يكون هذا والدعوات اللاحقة للمقياس معطى بنفس قيمة الإدخال إرجاع نفس قيمة الإخراج.

ترتيبي . المجال ([ المجال ]) Source

إذا تم تحديد المجال ، فقم بتعيين المجال على مجموعة القيم المحددة. سيتم تعيين العنصر الأول في المجال على العنصر الأول في النطاق ، وقيمة المجال الثاني إلى قيمة النطاق الثاني ، وهكذا. يتم تخزين قيم المجال داخليًا في خريطة من القيمة المعيارية إلى الفهرس ؛ ثم يتم استخدام الفهرس الناتج لاسترداد قيمة من النطاق. وبالتالي ، يجب أن تكون قيم المقياس الترتيبي قسرية على سلسلة ، وتحدد النسخة المقيدة لقيمة المجال بشكل فريد قيمة النطاق المناظرة. إذا لم يتم تحديد المجال ، فتُرجع هذه الطريقة المجال الحالي.

تحديد المجال على نطاق ترتيبي هو اختياري إذا كانت قيمة غير معروفة هي implicit (الافتراضي). في هذه الحالة ، سيتم استنتاج المجال ضمنيًا من الاستخدام عن طريق تعيين كل قيمة فريدة تم تمريرها إلى المقياس إلى قيمة جديدة من النطاق. لاحظ أنه يوصى باستخدام مجال صريح لضمان سلوك الحتمية ، حيث إن استنتاج المجال من الاستخدام يعتمد على الطلب.

ترتيبي . المدى ([ المدى ]) Source

إذا النطاق المحدد، ويحدد نطاق مقياس ترتيبي لمجموعة محددة من القيم. سيتم تعيين العنصر الأول في المجال على العنصر الأول في النطاق ، وقيمة المجال الثاني إلى قيمة النطاق الثاني ، وهكذا. إذا كان هناك عدد أقل من العناصر في النطاق مقارنة بالمجال ، فسيقوم المقياس بإعادة استخدام القيم من بداية النطاق. إذا لم يتم تحديد النطاق ، فتُرجع هذه الطريقة النطاق الحالي.

ترتيبي . غير معروف ([ القيمة ]) Source

إذا تم تحديد قيمة ، قم بتعيين قيمة إخراج المقياس لقيم الإدخال غير المعروفة وإرجاع هذا المقياس. إذا قيمة لم يتم تحديد إرجاع قيمة غير معروفة الحالية، التي افتراضات إلى implicit . القيمة الضمنية تمكن بناء المجال الضمني. رؤية domain .

ترتيبي . نسخة () Source

إرجاع نسخة دقيقة من هذا المقياس الترتيبي. لن تؤثر التغييرات في هذا المقياس على المقياس المرتجع ، والعكس صحيح.

D3. scaleImplicit Source

قيمة خاصة ل ترتيبي .unknown تضاف القيم غير معروفة ضمنا إلى المجال: تمكن البناء مجال الضمني.

موازين الفرقة

تشبه جداول النطاقات المقاييس الترتيبية باستثناء نطاق الإخراج المستمر والرقمي. يتم احتساب قيم الإخراج المنفصلة تلقائيًا بواسطة المقياس عن طريق تقسيم النطاق المستمر إلى نطاقات موحدة. تُستخدم موازين النطاق عادةً للمخططات الشريطية ذات البعد الترتيبي أو القاطع. في قيمة غير معروفة على نطاق والفرقة هي غير محددة على نحو فعال: أنها لا تسمح البناء مجال الضمني.

فرقة

D3. scaleBand () Source

يبني نطاق الفرقة الجديدة مع فارغة domain وحدة range [0، 1]، لا padding ، لا rounding ومركز alignment .

الفرقة ( القيمة ) Source

عند إعطاء قيمة في domain الإدخال ، تُرجع بداية النطاق المقابل الناتج من range الإخراج . إذا لم تكن القيمة المحددة في نطاق المقياس ، فستُرجع غير معرف.

الفرقة . المجال ([ المجال ]) Source

إذا تم تحديد المجال ، فقم بتعيين المجال على مجموعة القيم المحددة. سيتم تعيين العنصر الأول في المجال على النطاق الأول ، وقيمة المجال الثاني على النطاق الثاني ، وهلم جرا. يتم تخزين قيم المجال داخليًا في خريطة من القيمة المعيارية إلى الفهرس ؛ ثم يتم استخدام الفهرس الناتج لتحديد النطاق. وبالتالي ، يجب أن تكون قيم نطاق النطاق قابلة للإكراه على سلسلة ، والإصدار المقيد لقيمة المجال يحدد النطاق المقابل بشكل فريد. إذا لم يتم تحديد المجال ، فتُرجع هذه الطريقة المجال الحالي.

الفرقة . المدى ([ المدى ]) Source

إذا تم تحديد النطاق ، قم بتعيين نطاق المقياس على صفيف مكون من عنصرين محددين. إذا كانت العناصر الموجودة في الصفيف المحدد ليست أرقامًا ، فسيتم إجبارها على الأرقام. إذا مجموعة لم يتم تحديد، يعود نطاق مقياس الحالي، الذي افتراضات إلى [0، 1].

الفرقة . rangeRound ([ range ]) Source

يحدد حجم و range إلى صفيف عنصر اثنين محددة من الأرقام في حين تمكن أيضا rounding . هذه طريقة ملائمة تعادل:

band
    .range(range)
    .round(true);

التقريب من المفيد أحيانا لتجنب القطع الأثرية الحواف، على الرغم من أن تنظر أيضا في shape-rendering "crispEdges" الأساليب.

الفرقة . جولة ([ جولة ]) Source

إذا تم تحديد الجولة ، فقم بتمكين التقريب أو تعطيله وفقًا لذلك. إذا تم تمكين التقريب ، فستكون بداية كل فرقة وإيقافها عددًا صحيحًا. التقريب من المفيد أحيانا لتجنب القطع الأثرية الحواف، على الرغم من أن تنظر أيضا في shape-rendering "crispEdges" الأساليب. لاحظ أنه إذا كان عرض النطاق ليس مضاعفًا لمجال النطاق ، فقد يكون هناك مساحة غير مستخدمة متبقية ، حتى بدون الحشو! استخدم alignment لتحديد كيفية توزيع مساحة بقايا الطعام.

الفرقة . paddingInner ([ padding ]) Source

إذا تم تحديد الحشو ، فقم بتعيين الحشوة الداخلية على القيمة المحددة التي يجب أن تكون في النطاق [0 ، 1]. إذا لم يتم تحديد الحشو ، فتُرجع الحشوة الداخلية الحالية التي يتم تحديدها افتراضيًا إلى 0. وتحدد الحشوة الداخلية نسبة النطاق المحجوز للمسافة الفارغة بين النطاقات.

الفرقة . paddingOuter ([ padding ]) Source

إذا تم تحديد الحشو ، فقم بتعيين الحشو الخارجي على القيمة المحددة التي يجب أن تكون في النطاق [0 ، 1]. إذا لم يتم تحديد الحشو ، فتُرجع الحشوة الخارجية الحالية التي يتم تعيينها افتراضيًا إلى 0. وتحدد الحشوة الخارجية نسبة النطاق المحجوز للمساحة الفارغة قبل النطاق الأول وبعد آخر شريط.

الفرقة . الحشو ([ الحشو ]) Source

وهناك طريقة ملائمة لوضع inner و outer الحشو لنفس الحشو القيمة. إذا الحشو لم يتم تحديد، يعود الحشو الداخلي.

الفرقة . محاذاة ([ محاذاة ]) Source

إذا محاذاة المحدد، يحدد المحاذاة إلى القيمة المحددة التي يجب أن تكون في النطاق [0، 1]. إذا محاذاة لم يتم تحديد، يعود محاذاة الحالية التي افتراضات إلى 0.5. يحدد المحاذاة كيفية توزيع أي مساحة متبقية غير مستخدمة في النطاق. تشير القيمة 0.5 إلى أنه ينبغي توزيع مساحة البقية بالتساوي قبل النطاق الأول وبعد النطاق الأخير ؛ أي ، ينبغي أن تتركز العصابات داخل النطاق. يمكن استخدام قيمة 0 أو 1 لنقل العصابات إلى جانب واحد ، لنقل وضعهم بجوار محور.

الفرقة . النطاق الترددي () Source

إرجاع عرض كل فرقة.

الفرقة . الخطوة () Source

إرجاع المسافة بين بداية النطاقات المجاورة.

الفرقة . نسخة () Source

إرجاع نسخة دقيقة من هذا المقياس. لن تؤثر التغييرات في هذا المقياس على المقياس المرتجع ، والعكس صحيح.

نقاط الموازين

المقاييس النقطية هي متغير من band مع عرض النطاق الترددي ثابت إلى صفر. وعادة ما تستخدم جداول النقاط ل scatterplots مع البعد الترتيبي أو القاطع. في قيمة غير معروفة على نطاق والنقطة هي غير معرفة دائما: أنها لا تسمح البناء مجال الضمني.

نقطة

D3. scalePoint () Source

يبني نطاق نقطة جديدة مع فارغة domain وحدة range [0، 1]، لا padding ، لا rounding ومركز alignment .

نقطة ( القيمة ) Source

عند إعطاء قيمة في domain الإدخال ، تُرجع النقطة المقابلة المشتقة من range الإخراج . إذا لم تكن القيمة المحددة في نطاق المقياس ، فستُرجع غير معرف.

نقطة . المجال ([ المجال ]) Source

إذا تم تحديد المجال ، فقم بتعيين المجال على مجموعة القيم المحددة. سيتم تعيين العنصر الأول في المجال إلى النقطة الأولى ، وقيمة المجال الثاني إلى النقطة الثانية ، وهكذا. يتم تخزين قيم المجال داخليًا في خريطة من القيمة المعيارية إلى الفهرس ؛ ثم يتم استخدام الفهرس الناتج لتحديد النقطة. وبالتالي ، يجب أن تكون قيم مقياس النقطة قسرية على سلسلة ، وتحدد النسخة المطابقة لقيمة المجال النقطة المقابلة بشكل فريد. إذا لم يتم تحديد المجال ، فتُرجع هذه الطريقة المجال الحالي.

نقطة . المدى ([ المدى ]) Source

إذا تم تحديد النطاق ، قم بتعيين نطاق المقياس على صفيف مكون من عنصرين محددين. إذا كانت العناصر الموجودة في الصفيف المحدد ليست أرقامًا ، فسيتم إجبارها على الأرقام. إذا مجموعة لم يتم تحديد، يعود نطاق مقياس الحالي، الذي افتراضات إلى [0، 1].

نقطة . rangeRound ([ range ]) Source

يحدد حجم و range إلى صفيف عنصر اثنين محددة من الأرقام في حين تمكن أيضا rounding . هذه طريقة ملائمة تعادل:

point
    .range(range)
    .round(true);

التقريب من المفيد أحيانا لتجنب القطع الأثرية الحواف، على الرغم من أن تنظر أيضا في shape-rendering "crispEdges" الأساليب.

نقطة . جولة ([ جولة ]) Source

إذا تم تحديد الجولة ، فقم بتمكين التقريب أو تعطيله وفقًا لذلك. في حالة تمكين التقريب ، سيكون موضع كل نقطة عددًا صحيحًا. التقريب من المفيد أحيانا لتجنب القطع الأثرية الحواف، على الرغم من أن تنظر أيضا في shape-rendering "crispEdges" الأساليب. لاحظ أنه إذا كان عرض النطاق ليس مضاعفًا لمجال النطاق ، فقد يكون هناك مساحة غير مستخدمة متبقية ، حتى بدون الحشو! استخدم alignment لتحديد كيفية توزيع المساحة المتبقية.

نقطة . الحشو ([ الحشو ]) Source

إذا تم تحديد الحشو ، فقم بتعيين الحشو الخارجي على القيمة المحددة التي يجب أن تكون في النطاق [0 ، 1]. إذا لم يتم تحديد الحشو ، فتُرجع الحشوة الخارجية الحالية التي يتم تعيينها افتراضيًا إلى 0. وتحدد الحشوة الخارجية نسبة النطاق المحجوز لمساحة فارغة قبل النقطة الأولى وبعد النقطة الأخيرة. أي ما يعادل outer . outer .

نقطة . محاذاة ([ محاذاة ]) Source

إذا محاذاة المحدد، يحدد المحاذاة إلى القيمة المحددة التي يجب أن تكون في النطاق [0، 1]. إذا محاذاة لم يتم تحديد، يعود محاذاة الحالية التي افتراضات إلى 0.5. يحدد المحاذاة كيفية توزيع أي مساحة متبقية غير مستخدمة في النطاق. تشير القيمة 0.5 إلى أن مساحة البقايا يجب أن توزع بالتساوي قبل النقطة الأولى وبعد النقطة الأخيرة ؛ أي ، يجب أن تتركز النقاط داخل النطاق. قد يتم استخدام قيمة 0 أو 1 لتحويل النقاط إلى جانب واحد ، لنقل وضعها في مكان مجاور لمحور.

نقطة . النطاق الترددي () Source

إرجاع صفر.

نقطة . الخطوة () Source

لإرجاع المسافة بين بداية النقاط المجاورة.

نقطة . نسخة () Source

إرجاع نسخة دقيقة من هذا المقياس. لن تؤثر التغييرات في هذا المقياس على المقياس المرتجع ، والعكس صحيح.

原文