در این آموزش به صورت ساده و روان به آموزش رسم نمودار پراکنش (Scatter Plot) در matplotlib پایتون میپردازیم! و یک سری نکات جانبی رو هم در کنارش میگیم برای بهبود شکل ظاهری نمودار!
خب! میخوایم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) با 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 !
در خط آخر هم اومدیم رنگ عنوان نمودار رو آبی میکنیم!
که خروجیش میشه!
که همانطور که مشاهده میکنید به نمودار سه برپسب برای محور x و y و z و یک عنوان اضافه شد!
تعداد دیدگاه | 0 |
تعداد بازدید | 5.7K |
تاریخ انتشار | 16/08/2019 |
تاریخ بروزرسانی | 16/08/2019 |
نویسنده | گروه آموزشی کولاک |