در حال بارگزاری

رسم scatter plot (نمودار پراکنش) سه بعدی در پایتون

شما اینجا هستید:
رسم scatter plot (نمودار پراکنش) سه بعدی در پایتون

رسم scatter plot (نمودار پراکنش) سه بعدی در پایتون

در این آموزش به صورت ساده و روان به آموزش رسم نمودار پراکنش (Scatter Plot) در matplotlib پایتون می‌پردازیم! و یک سری نکات جانبی رو هم در کنارش میگیم برای بهبود شکل ظاهری نمودار!

مثال: رسم یک scatter plot (نمودار پراکنش) با 3 نقطه!

خب! میخوایم3 نقطه در فضای سه بعدی بکشیم! این سه نقطه رو مثلاً با P1 و P2 و P3 نمایش می‌دیم! (اون P مخفف Point به معنی نقطه است!)

که مختصات x و y و z هر کدوم رو در زیر مشاهده می‌کنید!

P1: (x=1,y=1,z=1)

P2: (x=2,y=2,z=2)

P3: (x=3,y=3,z=3)

خب! حالا میشه بگید کلاً xهای این سه نقطه چیاست؟! (بله درسته! احتمالاً جوابتون به صورت زیر است!)

x=[1,2,3]

که مولفه اولش همون x نقطه‌ی P1 است! مولفه دومش x نقطه‌ی P2 است! و مولفه سومش x نقطه‌ی P3 است!

حالا میشه y و z های این نقاط رو هم بگین؟! (بله! بازهم درسته! احتمالاً جوابتون به صورت زیر خواهد بود!)

y=[1,2,3]

z=[1,2,3]

حالا بریم سراغ رسم نمودار!

قطعه کد زیر رو در نظر بگیرید!

from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')

x = [1,2,3]
y = [1,2,3]
z = [1,2,3]
ax.scatter3D(x, y, z, c='blue');

ax.set_xticks([1, 2, 3])
ax.set_yticks([1, 2, 3])
ax.set_zticks([1, 2, 3])

plt.show()

در خط 1 داریم از پکیج mpl_toolkits، ساب‌پکیج mplot3d رو وارد برنامه می‌کنیم! (اگر متوجه نمی‌شید چی دارم میگم، دلیلش اینه که به import کردن پکیج‌ها و راه‌هاش مختلفش تسلط ندارید! و باید مطلب راه‌های import کردن پکیج های مختلف پایتون رو مشاهده کنید! البته آخرهای این مطلب رو باید نگاه کنید! اول این مطلب یک سری مقدمات دیگه گفته شده!) [اگر این خط رو ننویسید، قطعاً برنامه با خطا مواجه میشه!]

در خط 2 هم از پکیج matplotlib، ساب‌پکیج pyplot رو با اسم مستعار plt داریم وارد برنامه می‌کنیم!

در خط 3 یه دونه figure داریم ایجاد می‌کنیم!

در خط 4، داریم یک axes درست می‌کنیم! و با اون چیزی که توی پرانتز نوشتیم (یعنی همون که نوشتیم projection و بعد مقدارش رو برابر ‘3d’ قراردادیم!) هم بهش می‌فهمووونیم که یک فضای سه بعدی باید برامون فراهم کنه، نه دو بعدی!

خط 5 که خالی است!

خط 6 تا 8 همون x و y و z های خودمون رو تعریف کردیم!

در خط 9 اومدیم با دستور scatter3D (که برای رسم نمودار scatter plot در فضای سه بعدی است!) یک نمودار پراکنش میسازیم از داده‌های x و y و z و و درضمن رنگ نقاط رو هم آبی میذاریم! (اون c مخفف color به معنی رنگ است! و blue هم که یعنی آبی! که این ها رو قبلاً هم صحبت کردیم البته!)

خط 10 که خالی است مجدداً !

در خطوط 11 و 12 و 13 هم داریم xtick ها، ytickها و ztick ها رو مشخص می‌کنیم! (هرچند قبلاً گفتیم چی هستن اینا! ولی یه اشاره گذرا بخوام بکنم باید بگم که مثلاً xticks همون اعدادی است که روی نمودار x قرار میگیره!)

مجدداً خط 14 خالی است!

در خط 15 هم داریم بند و بساطی که پشت پرده ساختیم رو نمایان می‌کنیم! (این رو هم قبلاً کامل توضیح دادیم! و یه توضیح مختصر اگه بخوام بدم، اینه که تا اینجا ما هر کاری کردیم، همه پشت پرده بوده! حالا با این دستور خط آخر، میایم پرده رو کنار میزنیم و اون‌هایی که ساختیم رو نمایش میدیم!)

خروجی نمودار !

رسم scatter plot (نمودار پراکنش) سه بعدی در پایتون

همانطور که در تصویر مشاهده می‌کنید، سه نقطه در همون نقاطی که اول مطلب گفتیم ساختیم!

خب شما به طور کامل نحوه رسم یک نمودار پراکنش (Scatter Plot) با matplotlib پایتون رو یاد گرفتید! ما در مثال بعدی، فقط سعی می‌کنیم با مطالب دیگه یکم بازی کنیم (مثل چیزهایی که از پکیج numpy بلد هستیم! ولی کلیت کار همین بود که در مثال 1 دیدید! پس اگر با اون مباحث آشنایی دارید برید سراغ مثال دوم!)

چند نکته تکمیلی تر!

قطعه کد زیر رو دقیقا خط قبل از آخرین خط کد مثال 1 قرار بدید!

ax.set_xlabel("x axis")
ax.set_ylabel("y axis")
ax.set_zlabel("z axis")
ax.set_title("3D Graph By: Sajjad Rahmani")

ax.xaxis.label.set_color("blue")
ax.yaxis.label.set_color("blue")
ax.zaxis.label.set_color("blue")
ax.title.set_color("blue")

در خط 1 این کدها اومدیم برای محور x یک label در نظر گرفتیم به اسم “x axis” یعنی محور x !

در خط 2 و 3 هم همین کار رو واسه نمودار y و z کردیم!

در خط 4 اومدیم برای نمودار خودمون یک عنوان (title) قرار دادیم! که عنوانش هست: “3D Graph By: Sajjad Rahmani” ! که ترجمه‌ش میشه: “نمودار سه بعدی، تهیه: سجّاد رحمانی” !

خط 5 رو که خالی گذاشتیم! (همینجوری! هیچ دلیل خاصی نداره! میخواستیم یکم بین قسمت های مختلف کدمون فاصله بندازیم! همین!)

خط 6، داریم برای محور x (یعنی همون xaxis)، برای برچسبش (label)، یک رنگ آبی (blue) در نظر می‌گیریم!

خط 7 و 8 هم همین داستان برقراه منتهی این بار واسه محور y و z !

در خط آخر هم اومدیم رنگ عنوان نمودار رو آبی می‌کنیم!

که خروجیش میشه!

رسم scatter plot (نمودار پراکنش) سه بعدی در پایتون

که همانطور که مشاهده می‌کنید به نمودار سه برپسب برای محور x و y و z و یک عنوان اضافه شد!

مطالب مرتبط

پکیج statistics - آموزش محاسبه مد (mode) در پایتون در یک مجموعه داده، به اووون عددی که از...

تابع reshape(-1,1) و تابع reshape(1,-1) در numpy پایتون دوتا از پرکاربردترین توابع numpy پایتون (مخصوصاً در علم داده)...

جزئیات نوشته
تعداد دیدگاه 0
تعداد بازدید 5.1K
تاریخ انتشار 16/08/2019
تاریخ بروزرسانی 16/08/2019
نویسنده گروه آموزشی کولاک
برای ارسال دیدگاه ابتداواردشوید