بدون شک نمودارها سهم غیرقابل انکاری را در آمار و علم داده به خود اختصاص میدهند. به همین دلیل در این مطلب به چگونگی و آموزش رسم نمودار در پایتون و نحوه نمایش نمودارها پرداخته شده است. همچنین، دورههای آموزش ویدیویی مرتبط با رسم نمودار در پایتون نیز در انتهای این مقاله معرفی شدهاند.
یک نمودار مناسب چه ویژگیهایی دارد؟
به طور کلی، برای اینکه یک نمودار جهت استفادههای شخصی یا انتشار قابل فهم و مناسب باشد، بهتر است ویژگیهای زیر در آن رعایت شوند:
- توضیحات و راهنمای هر بخش از نمودار مانند محورها، نمودارها، مقیاسها و سایر موارد به خوبی درج شده باشند.
- نمودار متناسب با دادهها انتخاب شده باشد.
- نمودارها روی هم قرار نگرفته و از یکدیگر قابل تفکیک باشند.
- تا حد امکان بهتر است نمودارها با رنگها و شکلهای متفاوتی نشان داده شوند تا از هم قابل تفکیک باشند.
در ادامه این مقاله به آموزش رسم نمودار در پایتون به صورت عملی و جامع پرداخته شده است.
آموزش رسم نمودار در پایتون
در این بخش، آموزش رسم نمودار در پایتون با بیان ساده و به صورت گام به گام ارائه شده است. این آموزش از رسم یک نمودار ساده آغاز و در هر مرحله قابلیت جدیدی به آن اضافه میشود. به این ترتیب، کدهای رسم نمودار در پایتون در هر مرحله کاملتر میشوند. تصویر خروجی تغییرات انجام شده در هر مرحله نیز نمایش داده شده است.
فراخوانی کتابخانههای مورد نیاز برای رسم نمودار در پایتون
برای رسم نمودار در پایتون، ابتدا باید کتابخانههای مورد نیاز را فراخوانی کرد:
import numpy as np
import matplotlib.pyplot as plt
تولید دادههای مصنوعی برای رسم نمودار در پایتون
حال برای شروع کار و رسم نمودار، نیاز به دادههای آزمایشی وجود دارد. بنابراین، میتوان به صورت زیر یک مجموعه داده مصنوعی تولید کرد:
np.random.seed(0)
N=30
Temperature=20+2*np.random.randn(N)+np.linspace(0,6,N)
در کدهای فوق، برای تولید دادههای مصنوعی از حاصل جمع یک عدد ثابت، یک مجموعه داده تصادفی نرمال و یک خط استفاده شده است. از np.random.seed(0) به این منظور استفاده شده است تا در دفعات مکرر اجرای کد، اعداد تصادفی یکسانی به کار گرفته شوند.
سادهترین حالت رسم نمودار در پایتون
سادهترین حالت رسم نمودار برای مجموعه داده Temperature به صورت زیر انجام میشود:
plt.plot(Temperature)
plt.show()
خروجی کدهای فوق به صورت زیر است:
آموزش رسم نمودار در پایتون : افزودن برچسب به محورهای نمودار
اولین مشکلی که در این نمودار جلب توجه میکند، نبود برچسب (Label) برای محورهای X و Y است. برای رفع این کاستی، میتوان به صورت زیر عمل کرد:
plt.plot(Temperature)
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.show()
در کدهای فوق، برای افزودن برچسب به محور افقی از دستور plt.xlabel و برای محور عمودی از plt.ylabel استفاده شده است. بهتر است واحدهای استفاده شده برای هر دو محور نیز داخل پرانتز قرار بگیرند. خروجی کدهای فوق در ادامه ملاحظه میشود:
همانطور که در تصویر فوق ملاحظه میشود، حالا برچسبهایی برای محورهای مختصات در خروجی اضافه شده است. در ادامه نحوه افزودن برچسب برای خود نمودار آموزش داده میشود.
آموزش رسم نمودار در پایتون : افزودن برچسب برای خود نمودار
میتوان برای هر نمودار نیز برچسب مخصوص آن را تنظیم کرد تا به عنوان راهنمایی برای نمودار نشان داده شود. این کار به صورت زیر انجام میشود:
plt.plot(Temperature,label='Room 1 Temperature at Mehr')
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
برای اینکه برچسبهای تنظیم شده نشان داده شوند، باید قبل از دستور نمایش نمودار از تابع plt.legend() استفاده کرد. بهتر است برچسب نمودارها کوتاه، مختصر و کامل باشد. حاصل کدهای فوق در خروجی در ادامه آمده است:
حالا کاستی دیگری در این نمودار به چشم میخورد؛ شروع نمودار از 0=X و اتمام آن در 29=X است. با توجه به اینکه شمارش روزهای ماه از 1 شروع میشود، بهتر است منحنی این مقادیر در نمودار نیز از 1 شروع و به 30 ختم شوند. نحوه انجام این کار در بخش بعدی آموزش رسم نمودار در پایتون شرح داده شده است. پیش از آن، مجموعه دورههای آموزش پایتون تم آف به علاقهمندان معرفی شده است.
معرفی فیلم های آموزش برنامه نویسی پایتون فراردس
در این بخش از مقاله آموزش رسم نمودار در پایتون ، مجموعه دورههای آموزشی پایتون برای آن دسته از علاقهمندانی معرفی شدهاند که قصد شروع یا ارتقا مهارت برنامهنویسی با زبان پایتون را دارند. در مجموعه دورههای آموزشی پایتون، بیش از ۱۲ هزار دقیقه فیلم آموزشی تهیه شده است که در ۳۶ دوره مختلف دستهبندی میشوند. در این مجموعه آموزشی، فیلمهای آموزش پایتون از سطح مقدماتی تا پیشرفته به همراه آموزشهای پروژه محور پایتون و همچنین دورههای آموزشی برای کتابخانهها و فریمورکهای مختلف پایتون ارائه شده است. همچنین، برخی از دورههای این مجموعه با آموزش رسم نمودار در پایتون و مصورسازی دادهها در ارتباط هستند که هر یک از آنها در انتهای این مقاله معرفی شده است. اما در ادامه این بخش، برخی از دورههای شاخص مجموعه آموزشهای پایتون تم آف فهرست شدهاند:
- آموزش برنامه نویسی پایتون (Python) – مقدماتی: طول مدت این دوره ۱۹ ساعت و ۵۳ دقیقه و مدرس آن مهندس پژمان قبالی شمس آبادی است. در این دوره آموزشی، زبان برنامهنویسی پایتون در سطح مقدماتی و از پایه آموزش داده شده است. برای دیدن فیلم آموزش برنامهنویسی پایتون (Python) – مقدماتی + کلیک کنید.
- آموزش برنامه نویسی پایتون – تکمیلی – بخش اول: طول مدت این دوره آموزشی ۱۳ ساعت و ۹ دقیقه و مدرس آن مهندس پژمان اقبالی شمس آبادی است. در این دوره آموزشی، زبان برنامهنویسی پایتون به صورت تکمیلی آموزش داده شده است و نسبت به دوره مقدماتی سرفصلها و موضوعات دیگری نیز در این دوره ارائه شده است. برای دسترسی به صفحه دوره آموزش برنامهنویسی پایتون – تکمیلی – بخش اول + کلیک کنید.
- آموزش زبان برنامه نویسی پایتون (Python) همراه با مثال های عملی: طول مدت این آموزش ۱۳ ساعت و ۲۰ دقیقه و مدرس آن دکتر فرشید شیرافکن است. این دوره آموزشی با این فرض ارائه شده که فراگیر هیچ دانش و تجربه قبلی پیرامون زبان پایتون ندارد. مفاهیم این دوره با تشریح اصول نظری و پس از آن، با پیادهسازی مثالها به صورت عملی آموزش داده شده است. برای دسترسی به صفحه آموزش زبان برنامه نویسی پایتون (Python) همراه با مثالهای عملی + کلیک کنید.
اصلاح نقطه شروع و پایان محور X در نمودار
اصلاح نقطه شروع و پایان محور X در نمودار به صورت زیر انجام میشود:
plt.plot(np.arange(1,N+1,1),Temperature,label='Room 1 Temperature at Mehr')
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
نتیجه اصطلاح نقطه آغاز و پایان در محور X به صورت زیر است:
به این ترتیب، ملاحظه میشود که نمایش مقادیر X در نمودار فوق اصلاح شده است. البته به دلیل اینکه موقعیت نقاط به خوبی مشخص نشده است، نمیتوان چندان متوجه اصلاح آن شد. بنابراین، برای نمایش بهتر دادههای مربوط به هر روز، میتوان یک نشانگر (Marker) تعریف کرد. چگونگی انجام این کار در ادامه آموزش داده شده است.
افزودن نشانگر برای نقاط داده در نمودار
اضافه کردن نشانگر برای نقاط داده در نمودار در کدهای زیر انجام شده است:
plt.plot(np.arange(1,N+1,1),Temperature,
label='Room 1 Temperature at Mehr',marker='o')
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
در لینک [+] اطلاعات بیشتری پیرامون Markerها وجود دارد. خروجی کدهای فوق در ادامه نشان داده شده است:
اصلاح ویژگیهای ظاهری نشانگرها
شاید بهتر باشد از یک Marker با اندازه کوچکتر با رنگی متفاوت و ضخامت خطوط کم استفاده شود:
plt.plot(np.arange(1,N+1,1),Temperature,
label='Room 1 Temperature at Mehr',marker='o',
ms=4,mfc='r',linewidth=0.8)
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
برای تنظیم اندازه مارکرها از آرگومان ms و برای تنظیم ضخامت خطوط از linewidth استفاده میشود. رنگ داخلی Markerها نیز با آرگومان mfc تعیین میشود. بهتر است رنگ نشانگرها با رنگ نمودار تفاوت داشته باشند تا تشخیص دادهها سادهتر شود. خروجی کدهای فوق به صورت زیر است:
همچنین، میتوان تغییراتی را اعمال کرد تا رنگ بخش بیرونی Markerها هم همرنگ با رنگ داخلی آنها باشند:
plt.plot(np.arange(1,N+1,1),Temperature,
label='Room 1 Temperature at Mehr',marker='o',
ms=4,mfc='r',mec='r',linewidth=0.8)
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
با توجه به نیاز، میتوان رنگهای متفاوتی برای بخش بیرونی و داخلی Markerها انتخاب کرد. هرچند، اغلب همرنگ بودن آنها مناسبتر است. نتیجه این تغییر به صورت زیر در خروجی نمایش داده میشود:
افزودن یک روند کلی به نمودار
در اینگونه دادهها که شامل مقدار یک متغیر در طول زمان است، میتوان یک روند کلی را نیز رسم کرد. برای مثال در نمودار تغییرات دمای مهرماه، با رسم یک روند کلی میتوان تغییرات کلی مقدار دما در طول یک ماه را به خوبی نمایش داد. بنابراین، در ادامه کدهای مربوط به رسم یک روند خطی (درجه اول) آمده است:
Time=np.arange(1,N+1,1)
Cs=np.polyfit(Time,Temperature,1)
P=np.poly1d(Cs)
plt.plot(Time,Temperature,
label='Room 1 Temperature at Mehr',marker='o',
ms=4,mfc='r',mec='r',linewidth=0.8)
plt.plot([1,N],[P(1),P(N)])
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
برای پیدا کردن ضرایب رگرسیون بین دو دسته داده X و Y، میتوان از تابع Polyfit موجود در کتابخانه Numpy استفاده کرد. سپس میتوان ضرایب حاصل از رگرسیون را به تابع poly1d داد و یک تابع چندجملهای تعریف کرد. این تابع میتواند به ازای هر مقدار مورد نیاز فراخوانی و محاسبه شود. با توجه به اینکه روند به صورت خطی است، تنها با داشتن مختصات نقاط ابتدا و انتهای آن، میتوان آن را رسم کرد. برای دادههایی که روندهایی از درجات بالاتر دارند، میتوان پارامتر Degree را در تابع Polyfit تغییر داد. نتیجه حاصل شده از اجرای کدهای فوق به صورت زیر است:
همانطور که مشاهده میشود، روند کلی دادهها (تغییرات دما در طول یک ماه) به خوبی نمایش داده شده است. حال میتوان ریخت (استایل) این خط روند را به خط چین تغییر داد. این کار در ادامه این بخش از آموزش رسم نمودار در پایتون انجام شده است.
تغییر خط روند به خط چین
تغییر خط روند به خط چین به صورت زیر انجام میشود. میتوان از رنگ بهتر و یک برچسب مناسب هم استفاده کرد:
Time=np.arange(1,N+1,1)
Cs=np.polyfit(Time,Temperature,1)
P=np.poly1d(Cs)
plt.plot(Time,Temperature,
label='Room 1 Temperature at Mehr',marker='o',
ms=4,mfc='r',mec='r',linewidth=0.8)
plt.plot([1,N],[P(1),P(N)],
label='Overall Trend',c='k',
linestyle='--',linewidth=1.3)
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
به طور کلی بهتر است خطوط روند یا خطوطی را که نشان دهنده تغییرات عمده در دادهها هستند، با ضخامت بیشتر و به صورت خط چین رسم کرد. خروجی تغییرات اعمال شده در خط روند به در تصویر زیر ملاحظه میشود:
حالا یک نمودار کامل به دست آمده است که دادهها را به خوبی نمایش میدهد. میتوان استایل نمودار را نیز به ggplot تغییر داد. این کار در ادامه این بخش از آموزش رسم نمودار در پایتون انجام شده است.
تغییر استایل و رنگ نمودار
تغییر استایل نمودار به صورت کدهای زیر انجام میشود:
Time=np.arange(1,N+1,1)
Cs=np.polyfit(Time,Temperature,1)
P=np.poly1d(Cs)
plt.style.use('ggplot')
plt.plot(Time,Temperature,
label='Room 1 Temperature at Mehr',c='b',
marker='o',ms=4,
mfc='r',mec='r',linewidth=0.8)
plt.plot([1,N],[P(1),P(N)],
label='Overall Trend',c='k',
linestyle='--',linewidth=1.3)
plt.xlabel('Time (Day)')
plt.ylabel('Temperature (℃)')
plt.legend()
plt.show()
با توجه به اینکه رنگ نمودار از پیش تعیین نشده، ممکن است با تغییر استایل نمودار، رنگ آن نیز دچار تغییر شود. بنابراین، بهتر است برای نمودار هم رنگی تعیین کرد تا از وقوع چنین مشکلی جلوگیری به عمل آید. بنابراین، این کار هم در کدهای فوق انجام شده است. برای کسب اطلاعات بیشتر در مورد استایلها میتوان به این لینک [+] مراجعه کرد. به این ترتیب، آموزش رسم نمودار در پایتون در سطح مقدماتی در این مقاله ارائه شد. اکنون در بخش پایانی به معرفی دورههای آموزشی مرتبط پرداخته شده است.
فیلم های مرتبط با آموزش رسم نمودار با پایتون تم آف
در مجموعه تم آف دورههای آموزشی مختلفی برای زبان برنامه نویسی پایتون تهیه شده است. در این بخش پایانی از آموزش رسم نمودار در پایتون ، تعدادی از دورههای مرتبط با موضوع این مقاله برای یادگیری بیشتر و جامعتر معرفی شدهاند. با رعایت ترتیب استفاده از این دورهها میتوان مسیر یادگیری پایتون را برای هوش مصنوعی و علم داده پیمود.
فیلم آموزش پایتون (Python) مقدماتی
پیش از شروع آموزش رسم نمودار در پایتون ، ابتدا باید آشنایی کافی با زبان برنامه نویسی پایتون وجود داشته باشد. برای شروع یادگیری برنامه نویسی پایتون میتوان از دوره مقدماتی آموزش پایتون تم آف استفاده کرد. طول مدت این دوره آموزشی، ۱۹ ساعت و ۵۳ دقیقه و مدرس آن مهندس پژمان اقبالی شمس آبادی است. این دوره آموزشی پیشنیازی ندارد و برای علاقهمندان به برنامهنویسی در تمامی زمینهها از جمله علم داده و هوش مصنوعی مناسب است. از جمله سرفصلها و موضوعاتی که در این دوره ارائه شدهاند، میتوان به نصب پایتون، کتابخانه استاندارد پایتون، ساختمان داده در پایتون، توابع و ماژولها، کلاس، خواندن و نوشتن فایلها و سایر مباحث مقدماتی پایتون اشاره کرد.
- برای دیدن فیلم آموزش برنامه نویسی پایتون (Python) – مقدماتی + اینجا کلیک کنید.
فیلم آموزش کار با کتابخانه های NumPy و Matplotlib در پایتون
پس از گذراندن دوره مقدماتی پایتون، برای رسم نمودار با این زبان برنامه نویسی میتوان از دوره آموزش کار با کتابخانههای NumPy و Matplotlib استفاده کرد. طول مدت این دوره چهار ساعت و ۴۶ دقیقه و مدرس آن مهندس میترا تجربه کار است. این دوره آموزشی از سه درس تشکیل شده که در درس اول مروری بر زبان پایتون و تعریف آرایهها انجام شده است. در درس دوم این دوره، آموزش بسته NumPy و یک بخش ضمیمه شامل معرفی چند تابع کاربردی و سایر موارد ارائه شده است. بخش سوم و پایانی این دوره به آموزش رسم نمودار در پایتون اختصاص دارد که در آن موضوعهایی شامل انواع نمودار، معرفی ماژولها و پکیجهای قابل استفاده برای رسم نمودار در پایتون ، کتابخانه Matplotlib، بسته PyLab و آموزش رسم نمودارهای دو بُعدی پوشش داده میشود.
- برای دیدن فیلم آموزش کار با کتابخانه های NumPy و Matplotlib در پایتون + اینجا کلیک کنید.
فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون
تجزیه و تحلیل و آمادهسازی دادهها در حوزه علم داده کاربرد دارد. آماده سازی دادهها به معنی تبدیل دادههای خام به ساختاری با ارزشتر است. تجسم دادهها، تجمیع دادهها و آموزش مدل آماری از جمله مواردی است که در آمادهسازی دادهها انجام میشود. برای آموزش تجزیه و تحلیل و آمادهسازی دادهها با پایتون میتوان از دوره آموزشی تهیه شده با همین عنوان در سایت تم آف استفاده کرد. طول مدت این دوره آموزشی نزدیک به ۱۰ ساعت و مدرس آن دکتر فرشید شیرافکن است.
اصول اولیه تجزیه و تحلیل و آمادهسازی دادهها، نحوه وارد کردن فایلهایی مثل XML ،JSON و CSV آموزش داده شده است. همچنین، چگونگی تجزیه و تحلیل دادهها، گروهبندی و اتصال دادهها با استفاده از کتابخانه Pandas در این دوره آموزش داده میشود. علاوه بر این، نحوه استخراج دادهها از وب، شیوههای شناسایی و پاکسازی دادهها و همچنین مصورسازی دادهها با Matplotlib نیز از جمله سایر مواردی است که در این دوره پوشش داده شده است.
- برای دیدن فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون + اینجا کلیک کنید.
فیلم آموزش یادگیری ماشین (Machine Learning) با پایتون (Python)
یادگیری ماشین یکی از کاربردیترین شاخههای هوش مصنوعی به شمار میرود. مدلهای یادگیری ماشین، الگوها را شناسایی میکنند، میآموزند و با کمترین دخالت انسانی تصمیمگیری میکنند. در یادگیری ماشین نیز از رسم نمودار و مصورسازی دادهها استفاده میشود. برای آموزش یادگیری ماشین ، استفاده از دوره آموزش یادگیری ماشین فراردس به علاقهمندان پیشنهاد میشود. طول مدت این دوره ۱۰ ساعت و مدرس آن مهندس سعید مظلومی راد است. این دوره شامل ۹ درس است که درس چهارم آن به آموزش ترسیم دادهها اختصاص دارد و در آن بسته Matplotlib معرفی و آشنایی با انواع نمودارها از جمله هیستوگرام و Scatter Plot حاصل میشود. علاوه بر آن، نحوه رسم چند نمودار به روشهای مختلف و آشنایی با بسته Seaborn نیز در بخش چهارم این دوره آموزشی شرح داده شده است.
- برای دیدن فیلم آموزش یادگیری ماشین آموزش یادگیری ماشین (Machine Learning) با پایتون (Python) + اینجا کلیک کنید.
جمعبندی
آموزش مقدماتی رسم نمودار با پایتون در این مقاله ارائه شد. ابتدا کتابخانههای مورد استفاده برای رسم نمودار در پایتون شامل Numpy و Matplotlib فراخوانی شدند. سپس دادههای مصنوعی تولید و سادهترین روش برای رسم نمودار آنها شرح داده شد. سپس در هر بخش از آموزش رسم نمودار در پایتون ، تغییراتی در نمودار اعمال و مواردی به آن اضافه شدند. در پایان نیز دورههای آموزشی مرتبط با رسم نمودار در پایتون برای افرادی معرفی شدند که میخواهند در این زمینه به صورت جامعتر و کاملتر آموزش ببینند. مرتبطترین دوره آموزشی تم آف با این مقاله، آموزش کار با کتابخانه های NumPy و Matplotlib در پایتون است.