پس از مطالعه دروس قبلی، این درس برای شما باز خواهد شد
توضیحات
در دنیای امروز، دادهها نقش کلیدی در تصمیمگیریها و تحلیلهای مختلف ایفا میکنند. اما دادهها به تنهایی معنای چندانی ندارند؛ اینجا است که رسم نمودار به عنوان یک ابزار قدرتمند برای نمایش بصری دادهها وارد عمل میشود. در میان ابزارهای مختلف، Matplotlib یکی از محبوبترین و پرکاربردترین کتابخانههای پایتون برای رسم نمودار است. این کتابخانه به دلیل انعطافپذیری بالا و قابلیتهای گستردهاش، مورد توجه بسیاری از دانشمندان داده، مهندسان و تحلیلگران قرار گرفته است.
Matplotlib یک کتابخانه قدرتمند و پرکاربرد برای رسم نمودارها و تصاویر دو بعدی و سه بعدی در زبان برنامهنویسی پایتون است. این کتابخانه به شما امکان میدهد تا دادههای خود را به صورت گرافیکی نمایش دهید و انواع مختلفی از نمودارها مانند خطی، میلهای، هیستوگرام، scatter plot و غیره را ایجاد کنید.
ویژگیهای اصلی Matplotlib:
انعطافپذیری بالا: شما میتوانید تقریباً هر نوع نموداری را با استفاده از Matplotlib ایجاد کنید.
سازگاری با سایر کتابخانهها: Matplotlib به خوبی با کتابخانههایی مانند NumPy و Pandas هماهنگ است.
قابلیت سفارشیسازی: شما میتوانید تقریباً هر جنبهای از نمودارها را سفارشی کنید، از جمله رنگها، فونتها، برچسبها و غیره.
پشتیبانی از نمودارهای سه بعدی: با استفاده از mplot3d میتوانید نمودارهای سه بعدی ایجاد کنید.
پشتیبانی از خروجیهای مختلف: شما میتوانید نمودارها را در قالبهای مختلف مانند PNG, PDF, SVG و غیره ذخیره کنید.
Matplotlib نه تنها برای رسم نمودارهای ساده مانند خطی و میلهای مناسب است، بلکه میتوان از آن برای ایجاد نمودارهای پیچیدهتر مانند نمودارهای سهبعدی، هیستوگرامها و حتی نمودارهای تعاملی استفاده کرد. این کتابخانه به شما امکان میدهد تا با کدنویسی ساده، نمودارهایی حرفهای و قابل انتشار ایجاد کنید.
در این دوره، به طور جامع به آموزش Matplotlib خواهیم پرداخت. از نصب و راهاندازی اولیه تا رسم نمودارهای پیشرفته و تنظیمات حرفهای، همهچیز را پوشش خواهیم داد. پس از مطالعه این دوره، شما قادر خواهید بود تا با استفاده از Matplotlib، دادههای خود را به شیوهای مؤثر و جذاب نمایش دهید.
هدف این دوره این است که شما را از سطح مبتدی به سطح پیشرفته برساند و به شما کمک کند تا با اعتماد به نفس از Matplotlib در پروژههای خود استفاده کنید. پس بیایید شروع کنیم و اولین گام را برای تسلط بر این کتابخانه قدرتمند برداریم.
نصب و راهاندازی Matplotlib
قبل از اینکه بتوانید از Matplotlib استفاده کنید، باید آن را روی سیستم خود نصب کنید. خوشبختانه، نصب این کتابخانه بسیار ساده است و میتوانید آن را با استفاده از ابزارهای مدیریت بستههای پایتون مانند pip یا conda انجام دهید.
نصب Matplotlib با استفاده از pip
اگر از pip برای مدیریت بستههای پایتون استفاده میکنید، میتوانید Matplotlib را با اجرای دستور زیر در ترمینال یا خط فرمان نصب کنید:
pip install matplotlib
این دستور آخرین نسخه پایدار Matplotlib را دانلود و نصب میکند. پس از اتمام نصب، میتوانید با وارد کردن کتابخانه در کدهای خود، از آن استفاده کنید.
نصب Matplotlib با استفاده از conda
اگر از conda به عنوان مدیر بسته استفاده میکنید، میتوانید Matplotlib را با دستور زیر نصب کنید:
conda install matplotlib
این دستور نیز آخرین نسخه پایدار Matplotlib را نصب میکند. conda به ویژه برای کسانی که از Anaconda یا Miniconda استفاده میکنند، گزینه مناسبی است.
وارد کردن Matplotlib در پروژههای پایتون
پس از نصب Matplotlib، میتوانید آن را در کدهای خود وارد کنید. معمولاً از نام مستعار plt برای این کتابخانه استفاده میشود تا کدنویسی سادهتر شود. برای وارد کردن Matplotlib، کد زیر را به ابتدای اسکریپت خود اضافه کنید:
import matplotlib.pyplot as plt
بررسی نسخه نصبشده
برای اطمینان از اینکه Matplotlib به درستی نصب شده است، میتوانید نسخه نصبشده را بررسی کنید. این کار را میتوانید با اجرای کد زیر انجام دهید:
import matplotlib
print(matplotlib.__version__)
این کد نسخه نصبشده Matplotlib را چاپ میکند. اگر نسخه به درستی نمایش داده شود، به این معنی است که Matplotlib با موفقیت نصب شده و آماده استفاده است.
با انجام این مراحل، شما Matplotlib را روی سیستم خود نصب کردهاید و آمادهاید تا شروع به رسم نمودارهای جذاب و حرفهای کنید. در بخش بعدی، با مفاهیم پایهای Matplotlib آشنا خواهیم شد و اولین نمودار خود را رسم خواهیم کرد.
آشنایی با مفاهیم پایه Matplotlib
قبل از اینکه شروع به رسم نمودارهای پیچیده کنید، مهم است که با مفاهیم پایهای Matplotlib آشنا شوید. این مفاهیم به شما کمک میکنند تا درک بهتری از ساختار و نحوه کار این کتابخانه داشته باشید و بتوانید نمودارهای خود را به طور مؤثرتری سفارشی کنید.
ساختار اصلی Matplotlib: Figure و Axes
در Matplotlib، دو مفهوم اصلی وجود دارد که باید با آنها آشنا شوید: Figure و Axes.
Figure: به کل فضای نمودار اشاره دارد. میتوانید آن را به عنوان یک بوم خالی در نظر بگیرید که میتوانید چندین نمودار (یا زیرنمودار) را روی آن رسم کنید. یک Figure میتواند شامل چندین Axes باشد.
Axes: به یک نمودار خاص درون یک Figure اشاره دارد. هر Axes شامل محورهای x و y، برچسبها، عنوان و سایر عناصر نمودار است. به عبارت دیگر، Axes جایی است که دادههای شما به صورت نمودار نمایش داده میشوند.
برای ایجاد یک Figure و Axes، میتوانید از کد زیر استفاده کنید:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
در این کد، fig یک شیء Figure و ax یک شیء Axes است. این دو شیء به شما امکان میدهند تا نمودارهای خود را به طور کامل کنترل کنید.
انواع نمودارها
Matplotlib از انواع مختلفی از نمودارها پشتیبانی میکند که هر کدام برای نمایش نوع خاصی از دادهها مناسب هستند. برخی از رایجترین انواع نمودارها عبارتند از:
نمودار خطی (Line Plot): برای نمایش روند تغییرات دادهها در طول زمان یا یک متغیر دیگر.
نمودار میلهای (Bar Plot): برای مقایسه مقادیر بین گروههای مختلف.
هیستوگرام (Histogram): برای نمایش توزیع فراوانی دادهها.
نمودار Scatter (Scatter Plot): برای نمایش رابطه بین دو متغیر.
نمودار دایرهای (Pie Chart): برای نمایش سهم نسبی بخشهای مختلف از کل.
مفاهیم اولیه
برای ایجاد نمودارهای حرفهای، باید با برخی مفاهیم اولیه آشنا شوید:
Labels: برچسبهایی که برای محورهای x و y استفاده میشوند تا مشخص کنند که هر محور چه چیزی را نشان میدهد.
Titles: عنوانهایی که برای نمودار یا هر Axes تعیین میشوند تا موضوع نمودار را مشخص کنند.
Legends: راهنمایی که نشان میدهد هر رنگ یا خط در نمودار مربوط به کدام دسته از دادهها است.
Grids: خطوط شبکهای که به خواندن و تفسیر نمودار کمک میکنند.
Annotations: توضیحات یا نشانههایی که برای تأکید بر بخشهای خاصی از نمودار اضافه میشوند.
با آشنایی با این مفاهیم پایه، شما آمادهاید تا اولین نمودار خود را با Matplotlib رسم کنید. در بخش بعدی، به رسم نمودارهای پایه مانند نمودار خطی، میلهای و هیستوگرام خواهیم پرداخت.
رسم نمودارهای پایه با Matplotlib
حالا که با مفاهیم پایهای Matplotlib آشنا شدید، زمان آن رسیده است که اولین نمودارهای خود را رسم کنید. در این بخش، به شما نشان میدهیم که چگونه میتوانید نمودارهای خطی، میلهای، هیستوگرام و Scatter را با استفاده از Matplotlib ایجاد کنید.
1. نمودار خطی (Line Plot)
نمودار خطی یکی از سادهترین و پرکاربردترین انواع نمودارها است که برای نمایش روند تغییرات دادهها در طول زمان یا یک متغیر دیگر استفاده میشود. برای رسم یک نمودار خطی ساده، میتوانید از کد زیر استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن عنوان و برچسبها
plt.title("نمودار خطی ساده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
در این کد، plt.plot(x, y) یک نمودار خطی از دادههای x و y رسم میکند. سپس با استفاده از plt.title، plt.xlabel و plt.ylabel، عنوان و برچسبهای محورها را اضافه میکنیم. در نهایت، plt.show() نمودار را نمایش میدهد.
2. نمودار میلهای (Bar Plot)
نمودار میلهای برای مقایسه مقادیر بین گروههای مختلف استفاده میشود. برای رسم یک نمودار میلهای ساده، میتوانید از کد زیر استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
# رسم نمودار میلهای
plt.bar(categories, values)
# افزودن عنوان و برچسبها
plt.title("نمودار میلهای ساده")
plt.xlabel("دستهها")
plt.ylabel("مقادیر")
# نمایش نمودار
plt.show()
در این کد، plt.bar(categories, values) یک نمودار میلهای از دادههای categories و values رسم میکند. سپس با استفاده از plt.title، plt.xlabel و plt.ylabel، عنوان و برچسبهای محورها را اضافه میکنیم.
3. نمودار هیستوگرام (Histogram)
هیستوگرام برای نمایش توزیع فراوانی دادهها استفاده میشود. برای رسم یک هیستوگرام ساده، میتوانید از کد زیر استفاده کنید:
import matplotlib.pyplot as plt
import numpy as np
# دادههای نمونه
data = np.random.randn(1000)
# رسم هیستوگرام
plt.hist(data, bins=30)
# افزودن عنوان و برچسبها
plt.title("هیستوگرام ساده")
plt.xlabel("مقادیر")
plt.ylabel("فراوانی")
# نمایش نمودار
plt.show()
در این کد، plt.hist(data, bins=30) یک هیستوگرام از دادههای data با 30 دسته (bins) رسم میکند. سپس با استفاده از plt.title، plt.xlabel و plt.ylabel، عنوان و برچسبهای محورها را اضافه میکنیم.
4. نمودار Scatter (Scatter Plot)
نمودار Scatter برای نمایش رابطه بین دو متغیر استفاده میشود. برای رسم یک نمودار Scatter ساده، میتوانید از کد زیر استفاده کنید:
import matplotlib.pyplot as plt
import numpy as np
# دادههای نمونه
x = np.random.rand(50)
y = np.random.rand(50)
# رسم نمودار Scatter
plt.scatter(x, y)
# افزودن عنوان و برچسبها
plt.title("نمودار Scatter ساده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
در این کد، plt.scatter(x, y) یک نمودار Scatter از دادههای x و y رسم میکند. سپس با استفاده از plt.title، plt.xlabel و plt.ylabel، عنوان و برچسبهای محورها را اضافه میکنیم.
با این مثالها، شما اکنون میتوانید نمودارهای پایه را با Matplotlib رسم کنید. در بخش بعدی، به سراغ تنظیمات پیشرفتهتر و سفارشیسازی نمودارها خواهیم رفت.
تنظیمات پیشرفته در Matplotlib
در بخش قبلی، با نحوه رسم نمودارهای پایه آشنا شدید. حالا زمان آن رسیده است که به سراغ تنظیمات پیشرفتهتر برویم تا بتوانید نمودارهای خود را به شکلی حرفهایتر و جذابتر سفارشی کنید. در این بخش، به شما نشان میدهیم که چگونه میتوانید محورها، رنگها، خطوط، متن و سایر عناصر نمودار را تنظیم کنید.
1. تنظیمات محورها (Axis Customization)
محورها یکی از مهمترین بخشهای هر نمودار هستند و تنظیمات مربوط به آنها میتواند تأثیر زیادی بر خوانایی و ظاهر نمودار داشته باشد. در اینجا چند تنظیمات مفید برای محورها را بررسی میکنیم.
تنظیم محدوده محورها (Setting Axis Limits)
برای تنظیم محدوده محورهای x و y، میتوانید از توابع plt.xlim() و plt.ylim() استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# تنظیم محدوده محورها
plt.xlim(0, 6)
plt.ylim(0, 12)
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با محدوده محور تنظیمشده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
تنظیم تیکها (Setting Ticks)
برای تنظیم تیکهای محورها، میتوانید از توابع plt.xticks() و plt.yticks() استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# تنظیم تیکهای محورها
plt.xticks([1, 2, 3, 4, 5], ['یک', 'دو', 'سه', 'چهار', 'پنج'])
plt.yticks([0, 5, 10], ['صفر', 'پنج', 'ده'])
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با تیکهای تنظیمشده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
2. تنظیمات سبک و رنگ (Styling and Coloring)
Matplotlib به شما امکان میدهد تا رنگها، خطوط و مارکرها را به دلخواه تنظیم کنید. در اینجا چند تنظیمات مفید را بررسی میکنیم.
تغییر رنگ و سبک خط (Changing Line Color and Style)
برای تغییر رنگ و سبک خط در نمودار خطی، میتوانید از پارامترهای color و linestyle استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی با رنگ و سبک خط متفاوت
plt.plot(x, y, color='red', linestyle='--')
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با رنگ و سبک خط متفاوت")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
تغییر مارکرها (Changing Markers)
برای تغییر مارکرها در نمودار خطی، میتوانید از پارامتر marker استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی با مارکرهای متفاوت
plt.plot(x, y, marker='o', markersize=8, markerfacecolor='blue', markeredgecolor='black')
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با مارکرهای متفاوت")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
3. افزودن متن و حاشیهنویسی (Adding Text and Annotations)
افزودن متن و حاشیهنویسی به نمودار میتواند به خواننده کمک کند تا اطلاعات مهم را بهتر درک کند. در اینجا چند روش برای افزودن متن و حاشیهنویسی را بررسی میکنیم.
افزودن متن (Adding Text)
برای افزودن متن به نمودار، میتوانید از تابع plt.text() استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن متن به نمودار
plt.text(3, 5, 'این یک متن است', fontsize=12, color='red')
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با متن اضافه")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
افزودن حاشیهنویسی (Adding Annotations)
برای افزودن حاشیهنویسی به نمودار، میتوانید از تابع plt.annotate() استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن حاشیهنویسی به نمودار
plt.annotate('نقطه مهم', xy=(3, 5), xytext=(4, 6),
arrowprops=dict(facecolor='black', shrink=0.05))
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با حاشیهنویسی")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
با این تنظیمات پیشرفته، شما میتوانید نمودارهای خود را به شکلی حرفهایتر و جذابتر سفارشی کنید. در بخش بعدی، به سراغ رسم نمودارهای پیشرفتهتر مانند نمودارهای چندگانه و سهبعدی خواهیم رفت.
رسم نمودارهای پیشرفته با Matplotlib
در بخشهای قبلی، با رسم نمودارهای پایه و تنظیمات پیشرفته آشنا شدید. حالا زمان آن رسیده است که به سراغ رسم نمودارهای پیشرفتهتر برویم. در این بخش، به شما نشان میدهیم که چگونه میتوانید نمودارهای چندگانه (Subplots)، نمودارهای سهبعدی و نمودارهای ویژه مانند نمودارهای کانتور و قطبی را با Matplotlib رسم کنید.
1. نمودارهای چندگانه (Subplots)
گاهی اوقات نیاز دارید تا چندین نمودار را در یک Figure نمایش دهید. این کار با استفاده از Subplots امکانپذیر است. برای ایجاد Subplots، میتوانید از تابع plt.subplots() استفاده کنید.
رسم چند نمودار در یک Figure
import matplotlib.pyplot as plt
import numpy as np
# دادههای نمونه
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# ایجاد یک Figure و دو Axes
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 5))
# رسم نمودار اول
ax1.plot(x, y1, color='blue')
ax1.set_title('نمودار سینوسی')
ax1.set_xlabel('محور X')
ax1.set_ylabel('محور Y')
# رسم نمودار دوم
ax2.plot(x, y2, color='red')
ax2.set_title('نمودار کسینوسی')
ax2.set_xlabel('محور X')
ax2.set_ylabel('محور Y')
# نمایش نمودارها
plt.tight_layout()
plt.show()
در این کد، plt.subplots(1, 2, figsize=(10, 5)) یک Figure با دو Axes در یک ردیف ایجاد میکند. سپس هر Axes به طور مستقل برای رسم نمودارهای مختلف استفاده میشود.
2. نمودارهای سهبعدی (3D Plots)
Matplotlib از رسم نمودارهای سهبعدی نیز پشتیبانی میکند. برای این کار، باید از ماژول mpl_toolkits.mplot3d استفاده کنید.
رسم یک نمودار سهبعدی ساده
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
# دادههای نمونه
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# ایجاد یک Figure و Axes سهبعدی
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# رسم نمودار سهبعدی
ax.plot_surface(x, y, z, cmap='viridis')
# افزودن عنوان و برچسبها
ax.set_title('نمودار سهبعدی')
ax.set_xlabel('محور X')
ax.set_ylabel('محور Y')
ax.set_zlabel('محور Z')
# نمایش نمودار
plt.show()
در این کد، fig.add_subplot(111, projection='3d') یک Axes سهبعدی ایجاد میکند و ax.plot_surface(x, y, z, cmap='viridis') یک سطح سهبعدی را رسم میکند.
3. نمودارهای ویژه (Specialized Plots)
Matplotlib از انواع مختلفی از نمودارهای ویژه پشتیبانی میکند که برای نمایش دادههای خاص مناسب هستند. در اینجا دو نمونه از این نمودارها را بررسی میکنیم.
نمودار کانتور (Contour Plot)
نمودار کانتور برای نمایش دادههای دو بعدی با استفاده از خطوط همسطح استفاده میشود. برای رسم یک نمودار کانتور، میتوانید از تابع plt.contour() استفاده کنید:
import matplotlib.pyplot as plt
import numpy as np
# دادههای نمونه
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
# رسم نمودار کانتور
plt.contour(x, y, z, levels=20, cmap='viridis')
# افزودن عنوان و برچسبها
plt.title('نمودار کانتور')
plt.xlabel('محور X')
plt.ylabel('محور Y')
# نمایش نمودار
plt.colorbar()
plt.show()
نمودار قطبی (Polar Plot)
نمودار قطبی برای نمایش دادهها در مختصات قطبی استفاده میشود. برای رسم یک نمودار قطبی، میتوانید از تابع plt.polar() استفاده کنید:
import matplotlib.pyplot as plt
import numpy as np
# دادههای نمونه
theta = np.linspace(0, 2 * np.pi, 100)
r = np.abs(np.sin(5 * theta))
# رسم نمودار قطبی
plt.polar(theta, r)
# افزودن عنوان
plt.title('نمودار قطبی')
# نمایش نمودار
plt.show()
با این مثالها، شما اکنون میتوانید نمودارهای پیشرفتهتری را با Matplotlib رسم کنید. در بخش بعدی، به سراغ کار با دادههای واقعی و نحوه پردازش و نمایش آنها خواهیم رفت.
کار با دادههای واقعی در Matplotlib
تا اینجا، ما از دادههای نمونه برای رسم نمودارها استفاده کردیم. اما در دنیای واقعی، شما معمولاً با دادههای واقعی سروکار دارید که ممکن است از فایلهای CSV، Excel یا سایر منابع استخراج شده باشند. در این بخش، به شما نشان میدهیم که چگونه میتوانید دادههای واقعی را بارگذاری کنید، پردازش کنید و سپس با استفاده از Matplotlib آنها را به صورت نمودار نمایش دهید.
1. بارگذاری دادهها (Loading Data)
برای کار با دادههای واقعی، ابتدا باید دادهها را از یک منبع (مانند فایل CSV یا Excel) بارگذاری کنید. کتابخانههایی مانند pandas این کار را بسیار ساده میکنند.
بارگذاری دادهها از یک فایل CSV
فرض کنید یک فایل CSV به نام data.csv دارید که شامل دادههای زیر است:
برای بارگذاری این دادهها و رسم نمودار، میتوانید از کد زیر استفاده کنید:
import pandas as pd
import matplotlib.pyplot as plt
# بارگذاری دادهها از فایل CSV
data = pd.read_csv('data.csv')
# نمایش چند ردیف اول دادهها
print(data.head())
# رسم نمودار خطی برای Revenue و Profit
plt.plot(data['Year'], data['Revenue'], label='Revenue', marker='o')
plt.plot(data['Year'], data['Profit'], label='Profit', marker='o')
# افزودن عنوان و برچسبها
plt.title('Revenue و Profit بر اساس سال')
plt.xlabel('سال')
plt.ylabel('مقدار')
# افزودن Legend
plt.legend()
# نمایش نمودار
plt.show()
در این کد، pd.read_csv('data.csv') دادهها را از فایل CSV بارگذاری میکند و data.head() چند ردیف اول دادهها را نمایش میدهد. سپس با استفاده از plt.plot()، نمودارهای خطی برای Revenue و Profit رسم میشوند.
2. پردازش دادهها (Data Processing)
گاهی اوقات، دادههای واقعی نیاز به پردازش اولیه دارند تا بتوان آنها را به درستی نمایش داد. برای مثال، ممکن است نیاز داشته باشید دادهها را فیلتر کنید، مقادیر گمشده را مدیریت کنید یا دادهها را گروهبندی کنید.
مدیریت مقادیر گمشده
فرض کنید دادههای شما شامل مقادیر گمشده (NaN) هستند. میتوانید این مقادیر را با استفاده از pandas مدیریت کنید:
import pandas as pd
import matplotlib.pyplot as plt
# دادههای نمونه با مقادیر گمشده
data = pd.DataFrame({
'Year': [2018, 2019, 2020, 2021, 2022],
'Revenue': [100000, 120000, None, 180000, 200000],
'Profit': [20000, 25000, 30000, None, 40000]
})
# پر کردن مقادیر گمشده با میانگین
data['Revenue'].fillna(data['Revenue'].mean(), inplace=True)
data['Profit'].fillna(data['Profit'].mean(), inplace=True)
# رسم نمودار خطی برای Revenue و Profit
plt.plot(data['Year'], data['Revenue'], label='Revenue', marker='o')
plt.plot(data['Year'], data['Profit'], label='Profit', marker='o')
# افزودن عنوان و برچسبها
plt.title('Revenue و Profit بر اساس سال')
plt.xlabel('سال')
plt.ylabel('مقدار')
# افزودن Legend
plt.legend()
# نمایش نمودار
plt.show()
در این کد، data['Revenue'].fillna(data['Revenue'].mean(), inplace=True) مقادیر گمشده در ستون Revenue را با میانگین مقادیر موجود پر میکند.
3. رسم نمودار با دادههای واقعی
پس از بارگذاری و پردازش دادهها، میتوانید آنها را به صورت نمودار نمایش دهید. در اینجا یک مثال از رسم نمودار هیستوگرام با دادههای واقعی آورده شده است:
import pandas as pd
import matplotlib.pyplot as plt
# بارگذاری دادهها از فایل CSV
data = pd.read_csv('data.csv')
# رسم هیستوگرام برای Revenue
plt.hist(data['Revenue'], bins=10, color='blue', edgecolor='black')
# افزودن عنوان و برچسبها
plt.title('توزیع Revenue')
plt.xlabel('Revenue')
plt.ylabel('فراوانی')
# نمایش نمودار
plt.show()
در این کد، plt.hist(data['Revenue'], bins=10, color='blue', edgecolor='black') یک هیستوگرام از ستون Revenue رسم میکند.
با این مثالها، شما اکنون میتوانید دادههای واقعی را بارگذاری کنید، پردازش کنید و سپس با استفاده از Matplotlib آنها را به صورت نمودار نمایش دهید. در بخش بعدی، به سراغ ذخیره و نمایش نمودارها خواهیم رفت.
ذخیره و نمایش نمودارها در Matplotlib
پس از رسم نمودارها، ممکن است بخواهید آنها را ذخیره کنید تا در گزارشها، ارائهها یا وبسایتها استفاده کنید. همچنین، ممکن است بخواهید نمودارها را در محیطهای مختلف مانند Jupyter Notebook یا IDEها نمایش دهید. در این بخش، به شما نشان میدهیم که چگونه میتوانید نمودارها را ذخیره کرده و به طور مؤثر نمایش دهید.
1. ذخیره نمودارها (Saving Plots)
Matplotlib به شما امکان میدهد تا نمودارها را در فرمتهای مختلف مانند PNG, PDF, SVG و غیره ذخیره کنید. برای ذخیره یک نمودار، میتوانید از تابع plt.savefig() استفاده کنید.
ذخیره نمودار در فرمت PNG
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن عنوان و برچسبها
plt.title("نمودار خطی ساده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# ذخیره نمودار در فرمت PNG
plt.savefig('line_plot.png')
# نمایش نمودار
plt.show()
در این کد، plt.savefig('line_plot.png') نمودار را در فایل line_plot.png ذخیره میکند. شما میتوانید فرمت فایل را به دلخواه تغییر دهید، مثلاً line_plot.pdf یا line_plot.svg.
ذخیره نمودار با کیفیت بالا
اگر میخواهید نمودار را با کیفیت بالا ذخیره کنید، میتوانید از پارامتر dpi (نقاط در اینچ) استفاده کنید:
نحوه نمایش نمودارها بستگی به محیطی دارد که در آن کار میکنید. در اینجا چند روش رایج برای نمایش نمودارها را بررسی میکنیم.
نمایش نمودار در Jupyter Notebook
اگر از Jupyter Notebook استفاده میکنید، میتوانید نمودارها را به طور مستقیم در سلولهای Notebook نمایش دهید. برای این کار، کافی است از دستور %matplotlib inline در ابتدای Notebook استفاده کنید:
%matplotlib inline
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن عنوان و برچسبها
plt.title("نمودار خطی ساده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
نمایش نمودار در IDEها
اگر از یک IDE مانند PyCharm یا VS Code استفاده میکنید، معمولاً نمودارها در یک پنجره جداگانه نمایش داده میشوند. برای نمایش نمودار، کافی است از تابع plt.show() استفاده کنید:
import matplotlib.pyplot as plt
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن عنوان و برچسبها
plt.title("نمودار خطی ساده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
نمایش نمودار در وبسایتها
اگر میخواهید نمودارها را در یک وبسایت نمایش دهید، میتوانید آنها را در فرمتهایی مانند PNG یا SVG ذخیره کنید و سپس در HTML استفاده کنید:
گاهی اوقات ممکن است بخواهید تنظیمات نمایش نمودارها را تغییر دهید، مثلاً اندازه Figure یا سبک نمایش.
تنظیم اندازه Figure
برای تنظیم اندازه Figure، میتوانید از پارامتر figsize استفاده کنید:
import matplotlib.pyplot as plt
# ایجاد یک Figure با اندازه مشخص
plt.figure(figsize=(10, 5))
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با اندازه تنظیمشده")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
استفاده از سبکهای پیشتعریف شده
Matplotlib چندین سبک پیشتعریف شده دارد که میتوانید از آنها برای تغییر ظاهر نمودارها استفاده کنید:
import matplotlib.pyplot as plt
# استفاده از سبک 'ggplot'
plt.style.use('ggplot')
# دادههای نمونه
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# رسم نمودار خطی
plt.plot(x, y)
# افزودن عنوان و برچسبها
plt.title("نمودار خطی با سبک ggplot")
plt.xlabel("محور X")
plt.ylabel("محور Y")
# نمایش نمودار
plt.show()
با این تنظیمات، شما میتوانید نمودارهای خود را به شکلی حرفهایتر ذخیره و نمایش دهید. در بخش بعدی، به سراغ نکات و ترفندهای مفید برای کار با Matplotlib خواهیم رفت.
جمعبندی
در این دوره، به طور جامع به آموزش Matplotlib پرداختیم و مراحل مختلفی را برای تسلط بر این کتابخانه قدرتمند پایتون پوشش دادیم. از نصب و راهاندازی اولیه تا رسم نمودارهای پایه و پیشرفته، تنظیمات سفارشی و کار با دادههای واقعی، همهچیز را بررسی کردیم. در ادامه، نحوه ذخیره و نمایش نمودارها را نیز آموختیم تا بتوانید از آنها در گزارشها، ارائهها و وبسایتها استفاده کنید.