آموزش جامع متپلاتلیب Matplotlib در پایتون (از پایه تا پروژههای پیشرفته)
فهرست مطالب
در دنیای علم داده و برنامهنویسی با پایتون، تجسم دادهها نقش حیاتی در تحلیل بهتر و درک عمیقتر اطلاعات دارد. یکی از محبوبترین و قدرتمندترین ابزارها برای مصورسازی دادهها در بین کتابخانههای پایتون، کتابخانه Matplotlib (متپلاتلیب) است. این کتابخانه با قابلیتهای گسترده و انعطافپذیر خود، امکان رسم انواع نمودارهای خطی، میلهای، دایرهای، پراکندگی و سهبعدی را برای کاربران فراهم میکند.
از دانشجویان تازهکار گرفته تا پژوهشگران حرفهای در حوزه علم داده، هوش مصنوعی و یادگیری ماشین، همه میتوانند با استفاده از Matplotlib دادههای خام خود را به نمودارهایی گویا و قابل تحلیل تبدیل کنند. در این مقاله، به صورت گامبهگام با مفاهیم پایهای این کتابخانه، کاربردهای واقعی آن در پروژههای دادهمحور و نمونه کدهای عملی آشنا خواهید شد.
Matplotlib چیست؟
یا همان متپلاتلیب، یکی از اصلیترین کتابخانههای پایتون در حوزهی مصورسازی دادهها (Data Visualization) است که به کاربران اجازه میدهد دادههای عددی را به نمودارهای بصری و قابل فهم تبدیل کنند. این کتابخانه توسط جان دی. هانتر (John D. Hunter) توسعه داده شد و اکنون به عنوان ابزار پایهای در بسیاری از پروژههای علمی، تحقیقاتی، مالی و حتی آموزشی استفاده میشود.
چرا Matplotlib اینقدر محبوب است؟
Matplotlib به دلیل ویژگیهایی مثل:
- قابلیت رسم نمودارهای متنوع (خطی، میلهای، دایرهای، پراکندگی و …)
- سازگاری با کتابخانههای دیگر مانند NumPy، Pandas و SciPy
- امکان ذخیره نمودارها در فرمتهای تصویری مختلف مانند PNG، PDF، SVG
- انعطافپذیری بالا در طراحی شکل، رنگ، فونت، برچسبها و لایهها
توانسته جایگاه ویژهای در بین توسعهدهندگان و تحلیلگران داده پیدا کند.

کاربردهای واقعی Matplotlib در دنیای داده
Matplotlib فقط برای پروژههای درسی یا آموزشی نیست. کاربردهای آن در دنیای واقعی بسیار گسترده است. در ادامه برخی از کاربردهای کلیدی آن را میبینید:
| حوزه کاری | کاربرد Matplotlib |
| علم داده | رسم نمودارهای توزیع، همبستگی و روند تغییر دادهها |
| اقتصاد و مالی | تحلیل روند قیمت سهام، نمایش شاخصهای اقتصادی |
| پزشکی | تحلیل سیگنالهای ECG یا EEG، مقایسه نتایج آزمایشها |
| آموزش و دانشگاه | آموزش آمار، ریاضیات و الگوریتمها با نمودارهای بصری |
| یادگیری ماشین | بررسی عملکرد مدلها با نمودارهای دقت، خطا و ROC Curve |
Matplotlib و جایگاه آن در بین کتابخانههای پایتون
در کنار کتابخانههایی مثل Seaborn و Plotly، کتابخانه Matplotlib پایهایترین و انعطافپذیرترین ابزار برای شروع مصورسازی در پایتون است. بسیاری از کتابخانههای سطح بالاتر مانند Seaborn یا Pandas plot، در واقع پشت صحنه از Matplotlib استفاده میکنند.
مقایسه Matplotlib با کتابخانههای مشابه (Seaborn, Plotly):
در دنیای پایتون، ابزارهای متعددی برای مصورسازی دادهها وجود دارند که هر کدام ویژگیهای خاص خود را دارند. در این بخش، به مقایسهی Matplotlib (متپلاتلیب) با دو کتابخانه معروف دیگر یعنی Seaborn و Plotly میپردازیم تا ببینیم هرکدام چه نقاط قوت و ضعفی دارند و در چه موقعیتی استفاده میشوند.
۱. Matplotlib: کنترل کامل + پایهایترین ابزار
- مزایا:
- کنترل بالا روی هر بخش از نمودار (محورها، فونتها، رنگها، استایل و …)
- بسیار مناسب برای کارهای دقیق و سفارشیسازیهای پیچیده
- پشتصحنهی بسیاری از کتابخانههای دیگر (مثل Seaborn)
- معایب:
- نیاز به نوشتن کد بیشتر برای رسیدن به نمودارهای زیبا
- رابط کاربری تعاملی ندارد
۲. Seaborn: سادگی در آمار و زیبایی بیشتر
- مزایا:
- رابط سادهتر نسبت به Matplotlib
- نمودارهای آماری آماده مانند boxplot، violinplot، heatmap و …
- مناسب برای تحلیل دادههای آماری در کنار Pandas
- معایب:
- انعطافپذیری کمتر در سفارشیسازی نسبت به Matplotlib
- وابستگی به Matplotlib در پشتصحنه (برای پردازش نهایی)
۳. Plotly: نمودارهای تعاملی و وبمحور
- مزایا:
- امکان تولید نمودارهای تعاملی با قابلیت زوم، فیلتر و ابزارک
- سازگار با محیطهای وب، داشبورد و Jupyter Notebook
- خروجی گرافیکی حرفهای و مدرن
- معایب:
- نصب و پیکربندی کمی پیچیدهتر نسبت به Seaborn
- برای برخی کاربردهای ساده، ممکن است بیشازحد سنگین باشد
| ویژگیها | Matplotlib | Seaborn | Plotly |
| کنترل و انعطافپذیری | بسیار بالا | متوسط | بالا |
| سادگی در استفاده | متوسط | بالا | بالا (برای تعاملی) |
| پشتیبانی از نمودارهای آماری | متوسط | بسیار بالا | بالا |
| خروجی تعاملی | ندارد | ندارد | دارد |
| وابستگی به Matplotlib | – | دارد | ندارد |
در مجموع، اگر به دنبال کنترل کامل و یادگیری اصولی مصورسازی هستید، Matplotlib انتخاب اول شماست. اگر زیبایی و راحتی بیشتر برای دادههای آماری میخواهید، Seaborn پیشنهاد خوبی است. اما اگر به نمودارهای تعاملی و مدرن برای وب یا داشبورد نیاز دارید، Plotly بهترین گزینه خواهد بود.
سوالی دارید یا نیاز به راهنمایی در مسیر یادگیری پایتون دارید؟ تیم ما آماده است تا همراهتان باشد. برای مشاوره رایگان با شماره ی ۰۹۹۰۵۵۰۱۹۹۸ تماس بگیرید

نصب و راهاندازی Matplotlib در پایتون (راهنمای بدون دردسر!)
برای شروع کار با کتابخانه Matplotlib (متپلاتلیب) در پایتون، نیاز به مراحل پیچیده یا پیکربندیهای سنگین نیست. نصب و راهاندازی این کتابخانه تنها در چند دقیقه انجام میشود. چه از محیطهای توسعه مثل Jupyter Notebook استفاده میکنید و چه از محیطهای خط فرمان (Command Line) یا IDEهایی مثل PyCharm، این راهنما شما را مرحله به مرحله جلو میبرد.
مرحله ۱: بررسی نصب بودن Matplotlib
اگر نمیدانید که آیا Matplotlib روی سیستم شما نصب شده یا نه، میتوانید از این دستور در پایتون استفاده کنید:
import matplotlib print(matplotlib.__version__)
اگر خطا دریافت کردید، به این معنی است که Matplotlib نصب نیست و باید آن را نصب کنید.
مرحله ۲: نصب Matplotlib با pip
سادهترین و متداولترین روش نصب، استفاده از دستور pip در ترمینال یا خط فرمان است:
pip install matplotlib
اگر از Jupyter Notebook استفاده میکنید، داخل یک سلول بنویسید:
!pip install matplotlib
⏱ نکته: نصب معمولاً کمتر از ۳۰ ثانیه زمان میبرد.
مرحله ۳: نصب با Anaconda (ویژه کاربران دیتا ساینس)
اگر از توزیع Anaconda استفاده میکنید (که مخصوص علم داده است)، میتوانید با دستور زیر از محیط Conda استفاده کنید:
conda install matplotlib
این روش بهویژه برای افرادی که با JupyterLab و محیطهای مجازی کار میکنند بسیار مناسب است.
مرحله ۴: تست اولیه نصب
پس از نصب موفق، با اجرای این کد ساده، مطمئن شوید که همهچیز درست کار میکند:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [10, 20, 25, 30])
plt.title("آزمایش اولیه Matplotlib")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
اگر نمودار ظاهر شد، یعنی همهچیز آماده است!
نکته مهم: نصب در محیطهای مجازی (Virtual Environments)
برای مدیریت بهتر پروژهها، توصیه میشود از محیطهای مجازی استفاده کنید. میتوانید با دستورات زیر محیط جدیدی بسازید و کتابخانه را فقط در آن نصب کنید:
python -m venv myenv source myenv/bin/activate # در مک یا لینوکس myenv\Scripts\activate # در ویندوز pip install matplotlib
حالا که نصب را با موفقیت انجام دادید، وقت آن رسیده که با رسم اولین نمودارها وارد دنیای مصورسازی حرفهای با Matplotlib شوید.
نصب با pip و conda (مشکلات رایج + راهحل)
اگرچه نصب Matplotlib با ابزارهایی مثل pip و conda معمولاً سریع و ساده انجام میشود، اما در برخی شرایط ممکن است با خطاهایی مواجه شوید. در این بخش، به رایجترین مشکلات نصب این کتابخانه و راهحل آنها میپردازیم تا بتوانید بدون سردرگمی وارد دنیای مصورسازی با Matplotlib شوید.

نصب با pip
برای نصب با pip از دستور زیر استفاده میکنیم:
pip install matplotlib
گر با چند نسخه پایتون کار میکنید، ممکن است نیاز باشد از pip3 استفاده کنید:
pip3 install matplotlib
مشکلات رایج هنگام نصب با pip
| مشکل | توضیح | راهحل پیشنهادی |
| Permission denied | کاربر دسترسی کافی ندارد | استفاده از دستور pip install matplotlib –user |
| pip: command not found | pip نصب نیست یا شناسایی نشده | نصب pip با python -m ensurepip –upgrade |
| Could not build wheels | وابستگیهای سیستمی ناقص هستند | آپدیت pip با pip install –upgrade pip یا نصب ابزار build |
| No matching distribution found | نسخه پایتون با نسخه Matplotlib ناسازگار است | استفاده از نسخه پایتون 3.6 به بالا |
| کندی شدید نصب یا توقف | اتصال به اینترنت ناپایدار است | استفاده از آینههای pip یا VPN در صورت نیاز |
نصب با conda (مخصوص کاربران Anaconda)
برای نصب با conda دستور زیر را در محیط Anaconda Prompt وارد کنید:
conda install matplotlib
یا برای نصب در محیط مجازی خاص:
conda activate myenv conda install matplotlib
مشکلات رایج هنگام نصب با conda
| مشکل | توضیح | راهحل پیشنهادی |
| PackagesNotFoundError | مخازن (channels) تعریف نشدهاند | اضافه کردن کانال conda-forge با conda config –add channels conda-forge |
| UnsatisfiableError | تداخل نسخهها بین کتابخانهها | حذف محیط و ساخت محیط جدید با نسخه سازگار |
| کندی زیاد در نصب | بهروزرسانی نکردن conda | اجرای conda update conda قبل از نصب |
| مشکل در شناسایی محیط | محیط مجازی به درستی فعال نشده | بررسی فعال بودن محیط با conda info –envs |
راهکار نهایی: استفاده از فایل requirements.txt
اگر پروژهای دارید که به نسخه خاصی از Matplotlib نیاز دارد، پیشنهاد میشود از فایل requirements.txt استفاده کنید:
matplotlib==3.8.2
و سپس:
pip install -r requirements.txt
با شناخت این خطاهای رایج و راهحلهایشان، دیگر نصب Matplotlib برایتان به یک کار ساده و سریع تبدیل میشود.
بررسی نسخههای سازگار با پایتون 3
کتابخانهی Matplotlib در طی سالهای اخیر بهطور مداوم بهروزرسانی شده و با نسخههای مختلف پایتون 3 سازگار شده است. اما همهی نسخههای پایتون ۳ با همهی نسخههای Matplotlib سازگاری کامل ندارند. در این بخش، بررسی میکنیم که چه نسخههایی از Matplotlib با نسخههای مختلف پایتون ۳ سازگار هستند و چطور میتوانید بهترین انتخاب را برای پروژهی خود داشته باشید.
جدول سازگاری Matplotlib با نسخههای پایتون 3
| نسخه Matplotlib | نسخههای سازگار پایتون | توضیحات |
| 3.8.x | Python 3.9 تا 3.12 | آخرین نسخههای پایدار و بهروزرسانیشده، مناسب برای پروژههای جدید |
| 3.5.x تا 3.7.x | Python 3.7 تا 3.10 | نسخههای پایدار با امکانات زیاد و پشتیبانی گسترده |
| 3.3.x تا 3.4.x | Python 3.6 تا 3.8 | مناسب برای سیستمهایی با نسخههای کمی قدیمیتر |
| 3.0.x تا 3.2.x | Python 3.5 تا 3.7 | شامل امکانات پایه، ولی برخی ویژگیهای مدرن را ندارند |
| قبل از 3.0 | Python 2.7 و 3.4 تا 3.6 | نسخههای قدیمی، توصیه نمیشوند برای استفاده در پروژههای جدید |
نکات مهم هنگام انتخاب نسخه مناسب:
- اگر از پایتون 3.11 یا 3.12 استفاده میکنید
بهتر است از آخرین نسخه Matplotlib (مانند 3.8.x) استفاده کنید که بهینه شده و دارای باگهای کمتر است. - اگر از پروژهی قدیمی یا سیستم محدود استفاده میکنید
بررسی کنید که نسخه Matplotlib مورد نیاز با نسخه پایتون فعلی شما سازگار باشد تا از خطاهای ImportError یا SyntaxError جلوگیری شود. - برای نصب نسخه خاص Matplotlib
میتوانید از دستور زیر استفاده کنید:
pip install matplotlib==3.7.1
برای مشاهده نسخه فعلی Matplotlib نصبشده:
import matplotlib print(matplotlib.__version__)
برای مشاهده نسخه پایتون فعال در سیستم:
python –version
اگر از محیطهای مجازی استفاده میکنید (که توصیه میشود)، میتوانید نسخههای خاصی از پایتون و Matplotlib را در کنار هم بهصورت جداگانه نگه دارید. این کار باعث جلوگیری از تداخل بین پروژهها میشود و مدیریت بهتری فراهم میکند.

ترسیم اولین نمودار با Matplotlib کدهای ساده تا حرفهای
بعد از نصب موفق کتابخانه Matplotlib (متپلاتلیب)، وقت آن است که وارد دنیای مصورسازی شوید و اولین نمودار خود را رسم کنید. در این بخش، از سادهترین نمودار خطی شروع میکنیم و سپس با افزودن ویژگیهایی مثل عنوان، برچسب محورها، لیجند و استایل گرافیکی، نمودار را به سطح حرفهای ارتقاء میدهیم.
رسم نمودار خطی (plt.plot) با تنظیمات پیشرفته
نمودارهای خطی، یکی از رایجترین انواع نمودار برای نمایش روند تغییر دادهها در طول زمان یا مقایسه بین متغیرها هستند. برای رسم آنها از تابع plot() در ماژول pyplot استفاده میشود.
مثال ساده: نمودار اولیه با plt.plot
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [10, 15, 8, 20, 18] plt.plot(x, y) plt.show()
خروجی: یک نمودار خطی ساده بدون عنوان یا برچسب.
افزودن استایل و تنظیمات حرفهای
با اضافه کردن رنگ، نوع خط، شکل نقاط و ضخامت، میتوان نمودار را جذابتر کرد:
plt.plot(x, y, color='green', linestyle='--', marker='o', linewidth=2, markersize=8)
پارامترهای رایج در plt.plot:
| پارامتر | عملکرد | نمونه مقدار |
| color | رنگ خط | ‘blue’, ‘red’, ‘green’ |
| linestyle | نوع خط | ‘-‘, ‘–‘, ‘:’ |
| marker | نماد نقاط داده | ‘o’, ‘^’, ‘s’ |
| linewidth | ضخامت خط | 2, 3.5 |
| markersize | اندازه نقاط داده | 6, 10 |
تنظیم عنوان، محورها و لیجند (راهنمای گامبهگام)
برای افزایش خوانایی نمودار و توضیح دادهها، استفاده از عنوان، برچسب محورها و لیجند ضروری است.
افزودن عنوان و برچسب محورها
plt.title("نمودار تغییرات فروش ماهانه")
plt.xlabel("ماه")
plt.ylabel("مقدار فروش (میلیون تومان)")
افزودن لیجند (legend)
اگر چند سری داده را روی یک نمودار نمایش میدهید، باید هر خط را مشخص کنید:
plt.plot(x, y, label="فروش ۱۴۰۳") plt.plot(x, [12, 14, 11, 19, 17], label="فروش ۱۴۰۲") plt.legend()
تنظیم فونت فارسی (در صورت نیاز)
برای نمودارهایی با برچسبهای فارسی در Jupyter یا سایر محیطها:
plt.rcParams['font.family'] = 'Tahoma' # یا 'IRANSans', 'Arial'
مثال کامل حرفهای:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y1 = [10, 15, 8, 20, 18]
y2 = [12, 14, 11, 19, 17]
plt.plot(x, y1, label='فروش ۱۴۰۳', color='blue', marker='o')
plt.plot(x, y2, label='فروش ۱۴۰۲', color='orange', linestyle='--', marker='s')
plt.title("مقایسه فروش دو سال اخیر")
plt.xlabel("ماه")
plt.ylabel("مقدار فروش (میلیون تومان)")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()
با همین اصول ساده میتوان دهها نوع نمودار متنوع و کاربردی ساخت. در بخشهای بعدی، به سراغ نمودارهای میلهای، دایرهای (Pie)، پراکندگی (Scatter) و زیرنمودارها (Subplots) خواهیم رفت.
انواع نمودارها در Matplotlib
یکی از بزرگترین مزایای کتابخانه Matplotlib (متپلاتلیب)، توانایی آن در تولید طیف گستردهای از نمودارهای گرافیکی است. چه بخواهید یک نمایش ساده از تغییرات خطی داشته باشید، یا یک تحلیل آماری دقیق را در قالب نمودار بصری ارائه دهید، Matplotlib ابزارهای لازم را برای شما فراهم کرده است. حتی برای ساخت نمودارهای متحرک در پایتون نیز میتوان از قابلیتهای انیمیشن در Matplotlib استفاده کرد، که این ویژگی در ارائههای علمی و داشبوردهای پویا بسیار کاربردی است.
در ادامه با رایجترین انواع نمودارها در Matplotlib آشنا میشویم؛ همراه با کدهای آماده، کاربردهای عملی و نکات شخصیسازی.
| نوع نمودار | تابع اصلی | کاربرد معمول |
| نمودار خطی (Line) | plt.plot() | نمایش روند تغییرات در زمان یا مقایسه دو سری داده |
| نمودار میلهای (Bar) | plt.bar() | مقایسه مقادیر گسسته یا دستهبندیشده |
| نمودار پراکندگی | plt.scatter() | تحلیل روابط بین دو متغیر (x, y) |
| نمودار دایرهای (Pie) | plt.pie() | نمایش سهم نسبی اجزای مختلف یک کل |
| هیستوگرام (Hist) | plt.hist() | نمایش توزیع دادههای پیوسته |
| نمودار جعبهای (Box) | plt.boxplot() | تحلیل دادههای آماری و شناسایی نقاط پرت |
| نمودار ناحیهای | plt.fill_between() | نمایش محدودهی تغییرات بین دو منحنی |
| زیرنمودار (Subplot) | plt.subplot() | ترسیم چند نمودار در یک پنجره مشترک |
| نمودار سهبعدی | Axes3D.plot3D() | تحلیل دادههای ۳ بعدی (نیاز به mpl_toolkits.mplot3d) |
چرا شناخت انواع نمودارها مهم است؟
انتخاب نوع نمودار مناسب میتواند دادهی خام را به یک بینش بصری مؤثر تبدیل کند. بهعنوان مثال:
- برای بررسی توزیع نمرات یک کلاس → هیستوگرام
- برای مقایسه فروش محصولات → نمودار میلهای
- برای نشان دادن سهم بازار → نمودار دایرهای
در بخشهای بعدی، برای هرکدام از این نمودارها، مثالهای کدنویسی، نکات شخصیسازی و کاربردهای واقعی ارائه خواهیم داد.

شخصیسازی حرفهای نمودارها (رازهایی که نمیدانستید!)
یکی از بزرگترین مزیتهای کتابخانه Matplotlib، امکان شخصیسازی بینهایت و حرفهای نمودارها است. با کمی دانش و تجربه، میتوانید نمودارهای ساده را به آثار بصری جذاب و کاملاً سفارشی تبدیل کنید که مخاطب را به خود جذب کرده و اطلاعات را بهتر منتقل کنند.
در این بخش به چند راز و نکته کلیدی در شخصیسازی نمودارها میپردازیم که احتمالاً تا به حال کمتر دربارهشان شنیدهاید.
تغییر فونت، رنگ و سبک نمودارها
شما میتوانید فونت متنها، رنگ خطوط، پسزمینه و حتی استایل محورها را به دلخواه تغییر دهید.
مثال تغییر فونت و رنگ عنوان:
plt.title("عنوان نمودار", fontsize=16, fontweight='bold', color='darkblue', family='Tahoma')
تغییر رنگ پسزمینه نمودار:
plt.gca().set_facecolor('#f0f0f0') # تغییر رنگ پسزمینه محور
تغییر رنگ خطوط و نقطهها با استفاده از پارامتر color و markerfacecolor:
plt.plot(x, y, color='green', marker='o', markerfacecolor='red')
اضافه کردن متن و اشکال به نمودار (annotate, arrow)
برای تاکید روی بخش خاصی از نمودار یا توضیح بیشتر، میتوانید از دستور annotate استفاده کنید.
مثال اضافه کردن پیکان و متن:
plt.annotate('نقطه اوج',
xy=(3, 25), # محل اشاره پیکان
xytext=(4, 30), # محل قرار گرفتن متن
arrowprops=dict(facecolor='black', shrink=0.05),
fontsize=12,
color='red')
میتوانید اشکال هندسی مثل خطوط عمودی و افقی هم به نمودار اضافه کنید:
plt.axvline(x=2.5, color='grey', linestyle='--') # خط عمودی plt.axhline(y=15, color='blue', linestyle=':') # خط افقی
ذخیره نمودار با کیفیت بالا (فرمتهای PNG, PDF, SVG)
برای استفاده در گزارشها یا وب، ذخیره نمودار با کیفیت بالا اهمیت دارد. میتوانید فرمت و کیفیت فایل خروجی را مشخص کنید:
plt.savefig('chart.png', dpi=300, bbox_inches='tight') # ذخیره به فرمت PNG با کیفیت 300dpi
برای فرمت PDF یا SVG کافیست پسوند فایل را تغییر دهید:
plt.savefig('chart.pdf')
plt.savefig('chart.svg')

نمودارهای پیشرفته و چندجزئی
وقتی صحبت از تحلیلهای دقیق و مقایسهای میشود، استفاده از نمودارهای چندجزئی در Matplotlib بسیار حیاتی است. این نوع نمودارها به شما اجازه میدهند چند نمودار را در یک تصویر نمایش دهید، رابطه بین متغیرها را بررسی کنید و یک دید کلی از چند جنبه مختلف داده ارائه دهید.
در این بخش با روشهای ایجاد subplotها، نمودارهای ترکیبی، نمودارهای تو در تو و محورهای چندگانه آشنا میشویم.
استفاده از subplot برای نمایش چند نمودار در یک تصویر
تابع plt.subplot() به شما اجازه میدهد چند نمودار مجزا را کنار هم بچینید.
مثال: دو نمودار در یک ردیف:
plt.figure(figsize=(10, 4))
plt.subplot(1, 2, 1)
plt.plot(x, y, color='blue')
plt.title('نمودار اول')
plt.subplot(1, 2, 2)
plt.plot(x, z, color='green')
plt.title('نمودار دوم')
plt.tight_layout()
plt.show()
نکته: پارامترهای subplot(1, 2, 1) یعنی ۱ ردیف، ۲ ستون، و نمودار شماره ۱.
استفاده از subplots() برای ساختار حرفهایتر
تابع plt.subplots() انعطافپذیری بیشتری دارد و امکان ساخت شبکهای از نمودارها را فراهم میکند.
مثال:
fig, axs = plt.subplots(2, 2, figsize=(8, 6)) axs[0, 0].plot(x, y) axs[0, 1].bar(x, y) axs[1, 0].scatter(x, y) axs[1, 1].hist(y) plt.tight_layout() plt.show()
نمودارهای تو در تو (Inset Plots)
نمودارهای تو در تو برای بزرگنمایی ناحیهای خاص یا نمایش یک متغیر وابسته دیگر بسیار مفید هستند.
fig, ax = plt.subplots() ax.plot(x, y)
# ایجاد نمودار کوچک در گوشه
inset = ax.inset_axes([0.5, 0.5, 0.35, 0.35])
inset.plot(x, y, color='red')
inset.set_title('جزئیات')
plt.show()
راهنما: آرگومانهای [0.5, 0.5, 0.35, 0.35] مکان و اندازهی نمودار تو در تو را مشخص میکنند.
محورهای چندگانه (دو y-axis در یک نمودار)
برای نمایش دو نوع داده با مقیاس متفاوت، میتوانید از محور دوم استفاده کنید.
fig, ax1 = plt.subplots()
ax1.plot(x, y, 'g-')
ax1.set_ylabel('محور اول (سبز)', color='g')
ax2 = ax1.twinx()
ax2.plot(x, z, 'b-')
ax2.set_ylabel('محور دوم (آبی)', color='b')
plt.title('نمودار با دو محور y')
plt.show()
ترکیب نمودارهای مختلف در یک قاب
در Matplotlib میتوانید نمودارهای خطی، ستونی، پراکندگی و … را به صورت همزمان در یک قاب ترکیب کنید:
fig, ax = plt.subplots()
ax.plot(x, y, label='خطی')
ax.bar(x, z, alpha=0.5, label='ستونی')
ax.legend()
plt.title('ترکیب نمودار خطی و ستونی')
plt.show()
خطاهای رایج در Matplotlib + راهحلهای سریع
کتابخانه Matplotlib بهواسطه انعطافپذیری بالا و قابلیتهای متنوعی که دارد، یکی از محبوبترین ابزارهای مصورسازی داده در پایتون است. اما کاربران تازهکار و حتی حرفهایها نیز ممکن است در هنگام استفاده از آن با خطاها یا چالشهایی روبهرو شوند. در این بخش، مجموعهای از رایجترین خطاها و راهحلهای سریع و کاربردی برای هر یک از آنها را بررسی میکنیم.
مشکل نمایش نمودارها در محیطهای مختلف (Jupyter vs IDE)
یکی از پرتکرارترین مشکلات، عدم نمایش نمودار در محیطهایی مانند Jupyter Notebook یا محیطهای توسعه مثل PyCharm است.
راهحلها برای Jupyter Notebook:
- همیشه قبل از رسم نمودار از دستور زیر استفاده کنید:
%matplotlib inline
اگر از JupyterLab استفاده میکنید و خروجی را نمیبینید، دستور زیر کمک میکند:
%matplotlib widget
راهحلها برای IDE مثل PyCharm یا VSCode:
- مطمئن شوید که در انتهای کد، دستور plt.show() را نوشتهاید.
- از اجرای اسکریپت بهصورت Run (نه فقط Save) استفاده کنید.
- اگر نمودار باز نمیشود، محیط گرافیکی سیستمعامل (مانند XQuartz در macOS) باید فعال باشد.
رفع خطای Figure size و تنظیم ابعاد نمودار
اگر نمودار بسیار کوچک یا بزرگ نمایش داده میشود، معمولاً به دلیل تنظیم نبودن اندازه شکل است.
راهحل پیشنهادی:
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6)) # عرض 10 و ارتفاع 6 اینچ
plt.plot([1, 2, 3], [4, 5, 6])
plt.title("نمودار تستی")
plt.show()
برای محیط Jupyter، ممکن است نیاز به تنظیم اندازه DPI نیز باشد:
plt.figure(figsize=(10, 6), dpi=100)
جمع بندی
اگر بخواهیم تنها یک کتابخانه برای شروع مصورسازی دادهها در پایتون معرفی کنیم، بدون شک Matplotlib انتخاب نخست خواهد بود. این ابزار قدرتمند با وجود ظاهر سادهاش، امکاناتی بینهایت برای شخصیسازی و کنترل دقیق نمودارها فراهم میکند که آن را به انتخاب اصلی دانشمندان داده، تحلیلگران و توسعهدهندگان در مسیر یادگیری علم داده و حتی در فرآیندهای پیچیدهتر مانند آموزش ریاضیات هوش مصنوعی تبدیل کرده است.
فراموش نکنید: در مسیر یادگیری برنامهنویسی و تحلیل دادهها، هیچ چیز به اندازه دیدن تصویر واضحی از اطلاعات نمیتواند به شما در تصمیمگیری، تحلیل و ارائه کمک کند. Matplotlib این تصویر را میسازد؛ دقیق، شفاف و قابل اعتماد.
سوالی دارید یا نیاز به راهنمایی در مسیر یادگیری پایتون دارید؟ تیم ما آماده است تا همراهتان باشد. برای مشاوره رایگان با شماره ی ۰۹۹۰۵۵۰۱۹۹۸ تماس بگیرید
سوالات متداول
1-تفاوت plt.show() و plt.savefig() چیست؟
- plt.show() نمودار را فقط نمایش میدهد (موقت و بصری).
- plt.savefig() نمودار را ذخیره میکند (به صورت فایل با فرمت دلخواه مانند PNG یا PDF).
2-چگونه نمودارها را در گزارشهای حرفهای استفاده کنیم؟
- آنها را با plt.savefig() در فرمتهای باکیفیت (مانند PDF یا SVG) ذخیره کنید، سپس در نرمافزارهایی مثل Word، LaTeX یا PowerPoint وارد نمایید.
3-بهترین جایگزینهای Matplotlib برای مصورسازی مدرن چیست؟
- Seaborn: برای نمودارهای آماری حرفهای با ظاهر زیبا.
- Plotly: برای نمودارهای تعاملی و تحت وب.
- Altair: برای مصورسازیهای سطح بالا و توصیفی.



