D3.js 5 - array

d3-array




d

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

يتضمن جافا سكريبت طرق طفرة تقوم بتعديل الصفيف:

  • array.pop - إزالة العنصر الأخير من الصفيف.
  • array.push - إضافة عنصر واحد أو أكثر إلى نهاية الصفيف.
  • array.reverse - عكس ترتيب عناصر الصفيف.
  • array.shift - إزالة العنصر الأول من الصفيف.
  • array.sort . فرز - فرز عناصر الصفيف.
  • array.splice - إضافة أو إزالة عناصر من الصفيف.
  • array.unshift - إضافة عنصر أو أكثر إلى مقدمة الصفيف.

هناك أيضًا طرق وصول تُرجع بعض تمثيل الصفيف:

  • array.concat - انضمام الصفيف مع صفيف (ق) أخرى أو القيمة (القيم).
  • array.join - انضمام جميع عناصر الصفيف في سلسلة.
  • array.slice - استخراج قسم من الصفيف.
  • array.indexOf - ابحث عن التواجد الأول لقيمة داخل المصفوفة.
  • array.lastIndexOf - ابحث عن التواجد الأخير لقيمة داخل الصفيف.

وأخيرًا طرق التكرار التي تطبق الوظائف على العناصر في الصفيف:

  • array.filter - قم بإنشاء مصفوفة جديدة مع العناصر التي يكون تقييمها صحيحًا فقط.
  • array.forEach - استدعاء دالة لكل عنصر في الصفيف.
  • array.every - معرفة ما إذا كان كل عنصر في الصفيف يفي بالتقييم.
  • array.map - إنشاء صفيف جديد نتيجة استدعاء دالة على كل عنصر في الصفيف.
  • array.some - array.some ما إذا كان عنصر واحد على الأقل في الصفيف يفي بتقييم.
  • array.reduce - تطبيق دالة لتقليل الصفيف إلى قيمة واحدة (من اليسار إلى اليمين).
  • array.reduceRight - تطبيق دالة لتقليل المصفوفة إلى قيمة واحدة (من اليمين إلى اليسار).

تثبيت

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

<script src="https://d3js.org/d3-array.v1.min.js"></script>
<script>

var min = d3.min(array);

</script>

جرب d3-array في متصفحك.

مرجع API

الإحصاء

طرق حساب إحصائيات الملخص الأساسية.

D3. دقيقة ( مجموعةملحق ]) Source

إرجاع الحد الأدنى للقيمة في الصفيف المحدد باستخدام الترتيب الطبيعي. إذا كانت المصفوفة فارغة ، فتُرجع غير معرف. قد يتم تحديد وظيفة ملحق اختيارية ، أي ما يعادل استدعاء الصفيف .map ( accessor ) قبل حساب القيمة الدنيا.

بخلاف Math.min ، تتجاهل هذه الطريقة القيم غير المحددة والقيم الخالية من NaN ؛ هذا مفيد لتجاهل البيانات المفقودة. بالإضافة إلى ذلك ، تتم مقارنة العناصر باستخدام النظام الطبيعي بدلاً من الترتيب الرقمي. على سبيل المثال ، الحد الأدنى من السلاسل ["20" ، "3"] هو "20" ، بينما الحد الأدنى للأرقام [20 ، 3] هو 3.

انظر أيضا scan extent .

D3. ماكس ( مجموعةملحق ]) Source

إرجاع الحد الأقصى للقيمة في الصفيف المحدد باستخدام الترتيب الطبيعي. إذا كانت المصفوفة فارغة ، فتُرجع غير معرف. قد يتم تحديد وظيفة ملحق اختيارية ، أي ما يعادل استدعاء الصفيف .map ( accessor ) قبل حساب القيمة القصوى.

بخلاف Math.max ، تتجاهل هذه الطريقة القيم غير المحددة ؛ هذا مفيد لتجاهل البيانات المفقودة. بالإضافة إلى ذلك ، تتم مقارنة العناصر باستخدام النظام الطبيعي بدلاً من الترتيب الرقمي. على سبيل المثال ، الحد الأقصى للسلاسل ["20" ، "3"] هو "3" ، في حين أن الحد الأقصى للأرقام [20 ، 3] هو 20.

انظر أيضا scan extent .

D3. المدى ( مجموعةملحق ]) Source

إرجاع minimum maximum للقيمة في الصفيف المحدد باستخدام الترتيب الطبيعي. إذا كانت المصفوفة فارغة ، فتُرجع [غير محددة وغير محددة]. قد يتم تحديد وظيفة ملحق اختيارية ، أي ما يعادل استدعاء الصفيف .map ( ملحق ) قبل حساب المدى.

D3. مجموع ( مجموعةملحق ]) Source

إرجاع مجموع مجموعة الأرقام المعطاة. إذا كانت المصفوفة فارغة ، فتُرجع 0. قد يتم تحديد وظيفة ملحق اختيارية ، أي ما يعادل استدعاء الصفيف .map ( accessor ) قبل حساب المبلغ. تتجاهل هذه الطريقة القيم غير المحددة وقيم NaN ؛ هذا مفيد لتجاهل البيانات المفقودة.

D3. يعني ( مجموعةملحق ]) Source

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

D3. متوسط ( مجموعةملحق ]) Source

إرجاع متوسط مجموعة الأرقام المعينة باستخدام طريقة R-7 . إذا كانت المصفوفة فارغة ، فتُرجع غير معرف. قد يتم تحديد وظيفة ملحق اختيارية ، أي ما يعادل استدعاء الصفيف .map ( ملحق ) قبل حساب الوسيط. تتجاهل هذه الطريقة القيم غير المحددة وقيم NaN ؛ هذا مفيد لتجاهل البيانات المفقودة.

D3. المصدر ( صفيف ، عملحق ]) Source

تُرجع p- quantile لمجموعة الأرقام المفروزة ، حيث p هو رقم في النطاق [0 ، 1]. على سبيل المثال ، يمكن حساب الوسيط باستخدام p = 0.5 ، والرباع الأول عند p = 0.25 ، والرباع الثالث عند p = 0.75. يستخدم هذا التطبيق بالتحديد طريقة R-7 ، وهو الإعداد الافتراضي للغة البرمجة R و Excel. فمثلا:

var a = [0, 10, 30];
d3.quantile(a, 0); // 0
d3.quantile(a, 0.5); // 10
d3.quantile(a, 1); // 30
d3.quantile(a, 0.25); // 5
d3.quantile(a, 0.75); // 20
d3.quantile(a, 0.1); // 2

قد يتم تحديد وظيفة ملحق اختيارية ، أي ما يعادل استدعاء الصفيف .map ( ملحق ) قبل حساب الكمية.

D3. تباين ( مجموعةملحق ]) Source

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

D3. الانحراف ( صفيفملحق ]) Source

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

طرق البحث عن المصفوفات لعنصر معين.

D3. مسح ( مجموعةمقارنة ]) Source

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

var array = [{foo: 42}, {foo: 91}];
d3.scan(array, function(a, b) { return a.foo - b.foo; }); // 0
d3.scan(array, function(a, b) { return b.foo - a.foo; }); // 1

تشبه هذه الوظيفة minimum ، باستثناء أنها تسمح باستخدام المقارنة بدلاً من الملحقات وترجع الفهرس بدلاً من القيمة التي تم الوصول إليها. انظر أيضا bisect .

D3. bisectLeft ( صفيف ، xlohi ]]) Source

إرجاع نقطة الإدراج لـ x في الصفيف للحفاظ على الترتيب الذي تم الفرز. يمكن استخدام الوسيطتين lo و hi لتحديد مجموعة فرعية من المصفوفة التي يجب مراعاتها ؛ افتراضيا يتم استخدام مجموعة كاملة. إذا كانت x موجودة بالفعل في الصفيف ، فستكون نقطة الإدراج قبل (إلى يسار) أي إدخالات موجودة. تعتبر قيمة الإرجاع مناسبة للاستخدام كوسيطة أولى splice افتراض أن المجموعة مصنفة بالفعل. تقسم نقطة الإدراج التي تم إرجاعها i الصفيف إلى نصفين بحيث تكون جميع v < x لـ v في صفيف .slice ( lo ، i ) للجانب الأيسر وكل v > = x لـ v في صفيف. شريحة ( i ، hi ) لـ الجانب الأيمن.

D3. شطر ( مجموعة ، سلومرحبا ]]) Source
D3. bisectRight ( مجموعة ، سلومرحبا ]]) Source

يشبه bisectLeft ، لكنه يُرجع نقطة الإدراج التي تأتي بعد (على يمين) أي إدخالات موجودة لـ x في الصفيف . تقسم نقطة الإدراج التي تم إرجاعها الصفيف إلى نصفين ، بحيث تكون كل من << x لـ v في الصفيف. شريحة ( lo ، i ) للجانب الأيسر وكل v > x لـ v في صفيف. شريحة ( i ، hi ) لـ الجانب الأيمن.

D3. bisector ( accessor ) Source
D3. منصف ( المقارنة ) Source

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

var data = [
  {date: new Date(2011, 1, 1), value: 0.5},
  {date: new Date(2011, 2, 1), value: 0.6},
  {date: new Date(2011, 3, 1), value: 0.7},
  {date: new Date(2011, 4, 1), value: 0.8}
];

يمكن بناء وظيفة مناسبة للقطعة على النحو التالي:

var bisectDate = d3.bisector(function(d) { return d.date; }).right;

هذا يعادل تحديد المقارنة:

var bisectDate = d3.bisector(function(d, x) { return d.date - x; }).right;

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

منصف . اليسار ( مجموعة ، سلومرحبا ]]) Source

أي ما يعادل bisectLeft ، ولكن يستخدم المقارنة المرتبطة به.

منصف . اليمين ( مجموعة ، سلومرحبا ]]) Source

أي ما يعادل bisectRight ، ولكن يستخدم المقارنة المرتبطة به.

D3. تصاعدي ( أ ، ب ) Source

يُرجع -1 إذا كان a أقل من b ، أو 1 إذا كان a أكبر من b ، أو 0. هذه هي وظيفة المقارنة للترتيب الطبيعي ، ويمكن استخدامها مع طريقة array.sort لترتيب العناصر في ترتيب تصاعدي. يتم تنفيذه على النحو التالي:

function ascending(a, b) {
  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
}

لاحظ أنه في حالة عدم تحديد وظيفة مقارنة لطريقة الفرز المضمنة ، فإن الترتيب الافتراضي هو معجمي (أبجدي) ، وليس طبيعيًا! هذا يمكن أن يؤدي إلى سلوك مفاجئ عند فرز مجموعة من الأرقام.

D3. تنازلي ( أ ، ب ) Source

يُرجع -1 إذا كان a أكبر من b أو 1 إذا كان a أقل من b أو 0. هذه هي وظيفة المقارنة للترتيب الطبيعي العكسي ، ويمكن استخدامها بالاقتران مع طريقة فرز الصفيف المضمنة لترتيب العناصر في تنازليا. يتم تنفيذه على النحو التالي:

function descending(a, b) {
  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
}

لاحظ أنه في حالة عدم تحديد وظيفة مقارنة لطريقة الفرز المضمنة ، فإن الترتيب الافتراضي هو معجمي (أبجدي) ، وليس طبيعيًا! هذا يمكن أن يؤدي إلى سلوك مفاجئ عند فرز مجموعة من الأرقام.

التحولات

طرق لتحويل المصفوفات ولإنشاء صفائف جديدة.

D3. الصليب ( أ ، بالمخفض ]) Source

إرجاع المنتج الديكارتي للصفيفين a و b . لكل عنصر i في الصفيف المحدد a وكل عنصر j في الصفيف المحدد b ، بالترتيب ، يستدعي وظيفة المخفض المحددة التي تمر بالعنصر i والعنصر j . إذا لم يتم تحديد المخفض ، فسيتم تعيينه افتراضيًا لوظيفة تقوم بإنشاء صفيف مكون من عنصرين لكل زوج:

function pair(a, b) {
  return [a, b];
}

فمثلا:

d3.cross([1, 2], ["x", "y"]); // returns [[1, "x"], [1, "y"], [2, "x"], [2, "y"]]
d3.cross([1, 2], ["x", "y"], (a, b) => a + b); // returns ["1x", "1y", "2x", "2y"]
D3. دمج ( المصفوفات ) Source

دمج الصفائف المحددة في صفيف واحد. تشبه هذه الطريقة طريقة concat الصفيف المضمنة؛ الفرق الوحيد هو أنه أكثر ملاءمة عندما يكون لديك مجموعة من المصفوفات.

d3.merge([[1], [2, 3]]); // returns [1, 2, 3]
D3. أزواج ( مجموعةالمخفض ]) Source

لكل زوج من العناصر المجاورة في المصفوفة المحددة ، بالترتيب ، يستدعي وظيفة المخفض المحددة التي تمر بالعنصر i والعنصر i - 1. إذا لم يتم تحديد المخفض ، فسوف يتم تعيينها افتراضيًا إلى دالة تخلق صفيفًا ذا عنصرين زوج:

function pair(a, b) {
  return [a, b];
}

فمثلا:

d3.pairs([1, 2, 3, 4]); // returns [[1, 2], [2, 3], [3, 4]]
d3.pairs([1, 2, 3, 4], (a, b) => b - a); // returns [1, 1, 1];

إذا كان للصفيف المحدد أقل من عنصرين ، فتُرجع المصفوفة الفارغة.

D3. permute ( مجموعة ، فهارس ) Source

إرجاع التقليب للمصفوفة المحددة باستخدام الصفيف المحدد من الفهارس . يحتوي الصفيف الذي تم إرجاعه على العنصر المقابل في الصفيف لكل فهرس في الفهارس بالترتيب. على سبيل المثال ، التكرار (["a" ، "b" ، "c"] ، [1 ، 2 ، 0]) بإرجاع ["b" ، "c" ، "a"]. من المقبول أن يكون طول مجموعة الفهارس بطول مختلف عن مجموعة العناصر ، وأن تكون الفهارس مكررة أو محذوفة.

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

var object = {yield: 27, variety: "Manchuria", year: 1931, site: "University Farm"},
    fields = ["site", "variety", "yield"];

d3.permute(object, fields); // returns ["University Farm", "Manchuria", 27]
D3. خلط ورق اللعب ( مجموعةبدءتوقف ]]) Source

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

D3. القراد ( بدء ، توقف ، العد ) Source

يُرجع صفيفًا من عدد + 1 تقريبًا متباعدة بشكل موحد ، ويتم تقريب القيم بشكل جيد بين البداية والتوقف (ضمنيًا). كل قيمة هي قوة عشرة مضروبة في 1 أو 2 أو 5. راجع أيضًا d3.tickIncrement و d3.tickStep linear.ticks .

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

D3. tickIncrement ( بدء ، توقف ، عد ) Source

مثل d3.tickStep ، باستثناء يتطلب أن تكون البداية دائمًا أقل من أو مساوية للخطوة ، وإذا كانت خطوة تحديد البداية المعطاة والتوقف d3.tickStep أقل من خطوة واحدة ، فتُرجع خطوة التجزئة العكسية السلبية بدلاً من ذلك. هذه الطريقة مضمونة دائمًا لإرجاع عدد صحيح ، ويتم استخدامها من قِبل d3.ticks لضمان تمثيل قيم d3.ticks التي تم إرجاعها بأكبر قدر ممكن من الدقة في النقطة العائمة IEEE 754.

D3. tickStep ( بدء ، توقف ، العد ) Source

تقوم بإرجاع الفرق بين قيم التجزئة المجاورة إذا تم تمرير نفس الوسيطات إلى d3.ticks : قيمة مدورة بشكل جيد وقوة عشرة مضروبة في 1 أو 2 أو 5. لاحظ أنه بسبب الدقة المحدودة للنقطة العائمة IEEE 754 ، قد لا تكون القيمة التي تم إرجاعها هي أرقام عشرية دقيقة ؛ استخدام d3-format لتنسيق الأرقام للاستهلاك البشري.

D3. المدى ([ البداية ،] توقفالخطوة ]) Source

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

إذا تم حذف الخطوة ، فستكون القيمة الافتراضية هي 1. إذا تم حذف البداية ، فسيتم تعيين القيمة الافتراضية على 0. تكون قيمة الإيقاف حصرية ؛ لا يتم تضمينه في النتيجة. إذا كانت الخطوة إيجابية ، فإن العنصر الأخير هو أكبر بداية + i * step أقل من التوقف ؛ إذا كانت الخطوة سلبية ، فإن العنصر الأخير هو أصغر بداية + i * step أكبر من التوقف . إذا احتوت الصفيف الذي تم إرجاعه على عدد لانهائي من القيم ، فسيتم إرجاع نطاق فارغ.

الوسائط غير مطلوبة لتكون أعداد صحيحة؛ ومع ذلك ، فإن النتائج أكثر قابلية للتنبؤ إذا كانت. يتم تعريف القيم في الصفيف المرتجع على أنها start + i * step ، حيث i عدد صحيح من صفر إلى واحد ناقص إجمالي عدد العناصر في الصفيف المرتجع. فمثلا:

d3.range(0, 1, 0.2) // [0, 0.2, 0.4, 0.6000000000000001, 0.8]

يرجع هذا السلوك غير المتوقع إلى النقطة العائمة مزدوجة الدقة IEEE 754 ، والتي تحدد 0.2 * 3 = 0.6000000000000001. استخدام d3-format لتنسيق الأرقام للاستهلاك البشري مع التقريب المناسب ؛ انظر أيضا linear.tickFormat في d3-scale linear.tickFormat .

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

d3.range(0, 1, 1 / 49); // BAD: returns 50 elements!
d3.range(49).map(function(d) { return d / 49; }); // GOOD: returns 49 elements.
D3. تبديل ( المصفوفة ) Source

يستخدم عامل zip كتغيير مصفوفة ثنائية الأبعاد.

D3. الرمز البريدي ( المصفوفات ... ) Source

إرجاع صفيف من الصفائف ، حيث تحتوي صفيف i th على العنصر i من كل صفيف وسيطة. يتم اقتطاع الصفيف الذي تم إرجاعه في الطول إلى أقصر صفيف في صفائف . إذا كانت الصفائف تحتوي على صفيف واحد فقط ، فإن الصفيف المرتجع يحتوي على صفائف عنصر واحد. مع عدم وجود وسيطات ، الصفيف الذي تم إرجاعه فارغ.

d3.zip([1, 2], [3, 4]); // returns [[1, 3], [2, 4]]

رسوم بيانية

الرسم البياني

تدرج الرسوم البيانية العديد من العينات المنفصلة في عدد أقل من الفواصل الزمنية المتتالية وغير المتداخلة. وغالبا ما تستخدم لتصور توزيع البيانات العددية.

D3. الرسم البياني () Source

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

الرسم البياني ( البيانات ) Source

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

  • x0 - الحد الأدنى للحاوية (ضمناً).
  • x1 - الحد العلوي للحاوية (خاص ، باستثناء آخر حاوية).
الرسم البياني . القيمة ([ القيمة ]) Source

إذا تم تحديد القيمة ، فقم بتعيين موصل القيمة على الوظيفة المحددة أو الثابت وإرجاع منشئ الرسم البياني هذا. إذا لم يتم تحديد القيمة ، فتُرجع أداة الوصول للقيمة الحالية ، والتي يتم افتراضها إلى وظيفة الهوية.

عند إنشاء رسم بياني ، سيتم استدعاء أداة الوصول إلى القيمة لكل عنصر في صفيف بيانات الإدخال ، ويتم تمرير العنصر d ، والفهرس i ، data المصفوفة بثلاثة وسيطات. يفترض ملحق القيمة الافتراضية أن بيانات الإدخال قابلة للترتيب (قابلة للمقارنة) ، مثل الأرقام أو التواريخ. إذا لم تكن البيانات الخاصة بك ، فيجب عليك تحديد مُوصل يُرجع القيمة المطلوبة المقابلة لوثيقة معينة.

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

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

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

على سبيل المثال ، إذا كنت تستخدم الرسم البياني بالتزامن مع مقياس خطي x ، فقد تقول:

var histogram = d3.histogram()
    .domain(x.domain())
    .thresholds(x.ticks(20));

يمكنك بعد ذلك حساب الصناديق من مجموعة من الأرقام مثل:

var bins = histogram(numbers);

لاحظ أنه يتم استدعاء أداة الوصول إلى المجال في صفيف values ، وليس على صفيف بيانات الإدخال.

الرسم البياني . عتبات ([ العد ]) Source
الرسم البياني . عتبات ([ عتبات ]) Source

إذا تم تحديد العتبات ، فقم بتعيين مولد العتبة على الوظيفة المحددة أو الصفيف وإرجاع مولد الرسم البياني هذا. إذا لم يتم تحديد العتبات ، فتُرجع مُنشئ العتبة الحالي ، والذي ينفّذ بشكل افتراضي صيغة Sturges . (وبالتالي ، يجب أن تكون قيم الرسم البياني أرقامًا!) يتم تعريف العتبات كصفيف من القيم [ x0 ، x1 ، ...]. سيتم وضع أي قيمة تقل عن x0 في الحاوية الأولى ؛ سيتم وضع أي قيمة أكبر من أو تساوي x0 ولكن أقل من x1 في الحاوية الثانية ؛ وما إلى ذلك وهلم جرا. وبالتالي ، فإن generated سيكون له عتبات .ll + 1 صناديق. انظر عتبات الرسم البياني لمزيد من المعلومات.

يتم تجاهل أي قيم عتبة خارج domain . الحاوية الأولى .x0 تساوي دائمًا الحد الأدنى لقيمة المجال ، والحاوية الأخيرة .x1 تساوي دائمًا الحد الأقصى لقيمة المجال.

إذا تم تحديد عدد بدلاً من مجموعة من العتبات ، فسيتم تقسيم domain بشكل موحد إلى صناديق عدد تقريبية ؛ رؤية d3.ticks .

رسم بياني عتبات

هذه الوظائف عادة لا تستخدم مباشرة ؛ بدلاً من ذلك ، قم histogram.thresholds إلى histogram.thresholds . يمكنك أيضًا تطبيق مُنشئ العتبة الخاص بك باستخدام ثلاث وسيطات: صفيف values الإدخال المستمدة من البيانات ، domain يمثل الحد الأدنى والحد الأقصى . قد يقوم المولد بعد ذلك بإرجاع صفيف العتبات الرقمية أو عدد الصناديق ؛ في الحالة الأخيرة ، يتم تقسيم المجال بشكل موحد إلى صناديق عدد تقريبية ؛ رؤية d3.ticks .

D3. thresholdFreedmanDiaconis ( القيم ، دقيقة ، كحد أقصى ) Source

يُرجع عدد الصناديق وفقًا لقاعدة Freedman-Diaconis ؛ يجب أن تكون قيم الإدخال أرقامًا.

D3. عتبة ( القيم ، دقيقة ، كحد أقصى ) Source

إرجاع عدد الصناديق وفقًا لقاعدة Scott المعتادة ؛ يجب أن تكون قيم الإدخال أرقامًا.

D3. thresholdSturges ( القيم ) Source

إرجاع عدد الصناديق وفقًا لمعادلة ستورجس ؛ يجب أن تكون قيم الإدخال أرقامًا.