أسطورة

  • عرض قيم البيانات في أسطورة الرسم البياني

    بناءً على الكود الذي قدمته، يبدو أنك تستخدم مكتبة Chart.js لعرض رسم بياني من نوع البيتزا (Pie Chart)، وترغب في إضافة أرقام القيم المتعلقة بكل قطاع في الرسم البياني إلى الوصف (التعليقات) الخاص بكل قطاع في العنوان (الأسطورة).

    لتحقيق هذا الهدف، يمكنك استخدام خاصية الـ “tooltips” في مكتبة Chart.js التي تسمح لك بعرض معلومات إضافية عن البيانات عند تحويب المؤشر فوق القطاعات. يمكنك أيضًا استخدام دالة مخصصة لتنسيق المعلومات وإضافتها إلى العنوان.

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

    javascript
    var tempData = { labels: Status, datasets: [{ label: "Status", data: Qtd, backgroundColor: randColor }] }; var ctx = $("#pieStatus").get(0).getContext("2d"); var chartInstance = new Chart(ctx, { type: 'pie', data: tempData, options: { title: { display: true, fontsize: 14, text: 'Total de Pedidos por Situação' }, legend: { display: true, position: 'bottom', labels: { generateLabels: function(chart) { var data = chart.data; if (data.labels.length && data.datasets.length) { return data.labels.map(function(label, i) { var meta = chart.getDatasetMeta(0); var ds = data.datasets[0]; var arc = meta.data[i]; var value = ds.data[i]; var bgColor = arc._model.backgroundColor; return { text: label + ": " + value, // Add value to label fillStyle: bgColor, strokeStyle: bgColor, lineWidth: 2, hidden: isNaN(ds.data[i]), // Hide label if value is NaN index: i }; }); } else { return []; } } } }, responsive: false } });

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

    باستخدام هذا التعديل، يجب أن تظهر القيم المتعلقة بكل قطاع في الأسطورة بجانب اسم القطاع. يمكنك تخصيص التنسيق وفقًا لاحتياجاتك، مثل تغيير لون النص أو حجم الخط، وذلك باستخدام الخيارات المتاحة في الـ “legend” و “labels” في الكود.

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

    بالطبع، دعنا نستكمل المقال لإضافة بعض الشروحات والتوضيحات حول كيفية تخصيص وتفسير الكود المُعدَّل لعرض القيم في الأسطورة بجانب كل قطاع في الرسم البياني.

    التعديل الذي قمت به يعتمد على استخدام دالة generateLabels لتوليد التسميات بشكل مخصص. لفهم كيف يعمل هذا التعديل، دعنا نقوم بتحليل الكود خطوة بخطوة:

    1. تعريف دالة generateLabels: يتم تعريف دالة generateLabels داخل خيارات الأسطورة (legend) في كائن الخيارات (options) للرسم البياني. هذه الدالة تقوم بإنشاء التسميات (labels) لكل عنصر في الأسطورة.

    2. استخدام البيانات من الرسم البياني: تقوم الدالة بالوصول إلى بيانات الرسم البياني (chart data) وتحليلها لإنشاء التسميات المناسبة. يتم الحصول على معلومات القطاعات (slices) من مجموعة البيانات الأولى في الرسم البياني.

    3. إنشاء التسميات: يتم إنشاء التسميات باستخدام بيانات الرسم البياني. لكل قطاع، يتم استخدام اسمه (label) مع قيمته المقابلة لإنشاء تسمية. تمت إضافة القيمة إلى النص لكل تسمية باستخدام الجملة label + ": " + value.

    4. تخصيص العرض: يمكنك تخصيص عرض التسميات كما تشاء، مثل تغيير لون النص أو حجم الخط، من خلال تعديل الخيارات المتاحة في labels في خيارات الأسطورة.

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

  • تحسين تصميم الرسوم البيانية باستخدام Seaborn في Python

    عند التعامل مع تصميم الرسوم البيانية في مكتبة Seaborn بلغة Python، قد يواجه المستخدم تحديات في التحكم في العناصر المعروضة في الأسطورة (legend)، خاصةً عند استخدام توليفة من الـ boxplot والـ stripplot. يظهر الرمز التالي محاولة لرسم الرسم البياني المرغوب:

    python
    import matplotlib.pyplot as plt import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") sns.stripplot(x="day", y="total_bill", hue="smoker", data=tips, jitter=True, palette="Set2", split=True, linewidth=1, edgecolor='gray') sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set2", fliersize=0) plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)

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

    لحل هذه المشكلة، يُفضل اللجوء إلى استخدام الدالة get_legend() التي توفرها مكتبة Seaborn. يمكن استخدام هذه الدالة للتحكم في عناصر الأسطورة. فيما يلي التعديل الذي يُمكن استخدامه لحذف الأسطورة المتعلقة بـ stripplot:

    python
    import matplotlib.pyplot as plt import seaborn as sns import pandas as pd tips = sns.load_dataset("tips") ax = sns.stripplot(x="day", y="total_bill", hue="smoker", data=tips, jitter=True, palette="Set2", split=True, linewidth=1, edgecolor='gray') sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set2", fliersize=0) # حذف الأسطورة المتعلقة بـ stripplot handles, labels = ax.get_legend_handles_labels() ax.legend(handles[:2], labels[:2], title="") plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)

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

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

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

    تعتبر الدالة load_dataset المستخدمة لتحميل مجموعة البيانات “tips” جزءًا من العديد من مجموعات البيانات المُدمجة في Seaborn، والتي تسهل على المستخدمين استخدام أمثلة عملية وواقعية في تحليل البيانات.

    في الرمز البرمجي، يتم استخدام stripplot لرسم نقاط البيان المتناثرة، وذلك باستخدام المتغيرات “day” و “total_bill”، مع تلوين حسب متغير “smoker”. يتم تحسين تصميم الرسم البياني باستخدام خيارات مثل “jitter” لتفادي التراكم، و”split” لتجنب تشابك الألوان.

    من ناحية أخرى، تُستخدم boxplot لرسم مربع الرسم البياني الذي يظهر الربع الأول والثالث والوسيط، مع تلوينه أيضًا حسب متغير “smoker”. يتم إخفاء القيم الشاذة باستخدام “fliersize”.

    مشكلة الأسطورة المكررة تم حلها باستخدام دالة get_legend() التي توفرها Seaborn. تم استخدام هذه الدالة لحذف الأسطورة المتعلقة بـ stripplot، مما أسفر عن تحسين في تصميم الرسم البياني.

    يُشجع المستخدم على استكشاف المزيد من خيارات ووظائف Seaborn لتحسين تجربة رسم الرسوم البيانية وتحليل البيانات بشكل فعّال.

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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