رسومات متعددة الأبعاد في بيثون - من ثلاثي الأبعاد إلى ستة أبعاد

أمثلة على الرسوم البيانية متعددة الأبعاد

مقدمة


التصور هو جزء مهم من تحليل البيانات ، والقدرة على النظر في أبعاد متعددة في نفس الوقت يجعل هذه المهمة أسهل. في البرنامج التعليمي ، سنرسم رسومات بيانية تصل إلى 6 أبعاد.


Plotly هي مكتبة بيثون مفتوحة المصدر لمجموعة متنوعة من التصورات التي تقدم التخصيص أكثر بكثير من matplotlib الشهيرة والبحرية . تم تثبيت الوحدة النمطية كالمعتاد - تثبيت نقطة مؤامرة . سوف نستخدمها لرسم الرسوم البيانية.


لنعد البيانات


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


4 خطوط فقط من 205 معروضة هنا.

قم بتنزيل البيانات من ملف CSV باستخدام الباندا .


import pandas as pd data = pd.read_csv("cars.csv") 

الآن ، بعد الإعداد ، لنبدأ ببعدين.


scatterplot ثنائي الأبعاد


scatterplot هي مؤامرة بسيطة جدا وشائعة. من المعلمات 6 ، يتم استخدام السعر والوزن كبح أدناه كما Y و X ، على التوالي.


 #    import plotly import plotly.graph_objs as go #  figure fig1 = go.Scatter(x=data['curb-weight'], y=data['price'], mode='markers') #  layout mylayout = go.Layout(xaxis=dict(title="curb-weight"), yaxis=dict( title="price")) #     HTML plotly.offline.plot({"data": [fig1], "layout": mylayout}, auto_open=True) 

في مؤامرة ، العملية مختلفة قليلا عن نفس الشيء في Matplotlib. يجب أن ننشئ تخطيطًا وشكلًا ، وننقلهم إلى وظيفة offline.plot ، وبعد ذلك سيتم حفظ النتيجة في ملف HTML في دليل العمل الحالي. فيما يلي لقطة لما يحدث. في نهاية المقال ، سيكون هناك رابط إلى مستودع جيثب مع رسومات HTML التفاعلية الجاهزة.


scatterplot ثنائي الأبعاد

مؤامرة مبعثر 3D


يمكننا إضافة معلمة حصانية ثالثة (مقدار القدرة الحصانية) إلى المحور Z. يوفر Plotly وظيفة Scatter3D لبناء الرسوم البيانية ثلاثية الأبعاد التفاعلية.


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

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


(من الأكثر ملاءمة إلقاء نظرة على الكود ذي الصلة في علامة تبويب مجاورة بالتوازي مع القراءة - الترجمة تقريبًا.)


مضيفا البعد الرابع


نحن نعلم أنه لا يمكنك استخدام أكثر من ثلاثة أبعاد مباشرة ، ولكن يوجد حل بديل: يمكننا محاكاة العمق لتصور الأبعاد الأعلى باستخدام اللون أو الحجم أو الشكل.


هنا ، إلى جانب الخصائص الثلاثة السابقة ، سوف نستخدم المسافة المقطوعة للمدينة - mpg المدينة باعتبارها البعد الرابع ، والتي ستكون المعلمة markercolor للدالة Scatter3D مسؤولة عنها. سوف أخف الظل من علامة يعني أقل الأميال.


من الواضح على الفور أنه كلما ارتفع السعر وعدد الخيول والكتلة ، انخفض عدد الكيلومترات.


الرسم البياني 4D مع ظلال البعد 4th

مضيفا البعد الخامس


يمكن استخدام حجم العلامة لتصور البعد الخامس. نستخدم خاصية حجم المحرك لمعلمة markersize للدالة Scatter3D .


الملاحظات: يرتبط حجم المحرك ببعض المعلمات السابقة. كلما ارتفع السعر ، زاد حجم المحرك. وكذلك: انخفاض الأميال - محرك أكثر.


قطعة 5D مع قيمة علامة البعد الخامس (حجم المحرك)

مضيفا البعد السادس


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


لدينا عدد الأبواب المميزة ، والذي يحتوي على أعداد صحيحة - عدد الأبواب (2 أو 4). نحول هذه القيم إلى أشكال: مربع لأربعة أبواب ، دائرة للأبواب. يتم استخدام المعلمة markersymbol للدالة Scatter3D .


الملاحظات: يبدو أن كل السيارات الأقل سعراً بها 4 أبواب (دوائر). من خلال الاستمرار في دراسة الجدول الزمني ، يمكن تقديم المزيد من الافتراضات والاستنتاجات.


الرسم البياني 6D مع شكل علامة والبعد السادس (عدد الأبواب)

هل يمكننا إضافة المزيد من الأبعاد؟


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


شفرة المصدر


تتوفر بيثون كود والرسومات التفاعلية لجميع الأشكال على جيثب هنا.

Source: https://habr.com/ru/post/ar456282/


All Articles