رسم نمودار در متلب
به جلسه چهاردهم از آموزش متلب ، نحوه رسم نمودار در متلب، خوش آمدید. یکی از راههای درک دادهها، نمایش آنهاست. در این جلسه میخواهیم نحوه رسم نمودار با استفاده از نقاط در متلب، رسم نمودار دو بعدی در متلب، رسم نمودار گسسته در متلب، تغییر تنظیمات نمودار در متلب، اضافه کردن عنوان به نمودار در متلب و … را بررسی کنیم. برای رسم نمودارها از دستور plot در متلب استفاده خواهیم کرد.
مقدمهای بر رسم نمودار در متلب
یکی از مهمترین کارهایی که میتوان هنگام کار با دادهها انجام داد، مصورسازی داده است. در متلب توابعی وجود دارند که به ما این امکان را میدهند که با تنها چند خط کد، انواع نمودارها را رسم کنیم. در جلسه چهاردهم از آموزش متلب رایگان ، نحوه رسم نمودار در متلب و نجوه تغییر ظاهر نمودار آموزش داده خواهد شد. با هوسم همراه باشید…
رسم نمودار دو بعدی در متلب
در اولین بخش از آموزش رسم نمودار در متلب میخواهیم به نحوه رسم نمودار دو بعدی در متلب بپردازیم. یکسری نقاط به شکل زیر داریم که میخواهیم رسم کنیم:
x = [1, 4, 7, 9, 11]; y = [-2, 5, 0, 3, -3];
خب، این دو متغیر x و y چه هستند اصلا و کجایشان شبیه به نقطه هست؟ مختصات یک نقطه در فضای دو بعدی به شکل (x1, y1) نمایش داده میشود. که x1 فاصله از مبدا روی محور افقی و y1 فاصله از مبدا روی محور عمودی را نشان میدهد.
یک نمودار، از مجموعهای از نقطهها تشکیل میشود. برای رسم نمودار دو بعدی در متلب به مختصات همه این نقطهها نیاز داریم. محتصات نقطهها در دو متغیر x و y ذخیره شدهاند. متغیر x مربوط به مقادیر محور افقی و متغیر y نیز مقادیر محور عمودی را در خود دارد.
دستور plot در متلب
حالا که فهمیدیم x و y چه هستند، میخواهیم ببینیم یک نمودار در متلب چگونه رسم میشود. دستور plot در متلب برای رسم نمودار دو بعدی استفاده میشود. استفاده از این دستور نیز ساده است، کافی است در متلب بنویسیم:
plot(x, y)
مختصات x را ابتدا وارد میکنیم، یک کاما میگذاریم و سپس مختصات y را وارد میکنیم. نتیجه اجرای این کد به شکل زیر است:
خب، حاصل اجرای دستور plot در متلب ، این کوهستان نه چندان زیباست! صبر کنید ببینم، پس نقطههای ما کجا رفتند؟
چرا خروجی دستور plot، یک نمودار پیوسته هست؟
خب خیلیییی ساده، دستور plot نقاطی که از ما دریافت کرده را با خط به هم وصل میکند. هرکدام از شکستهایی که در تصویر مشاهده میکنید، یک نقطه هستند. به تصویر زیر نگاه کنید:
هرکدام از نقاط قرمز رنگی که در تصویر بالا مشاهده میکنید، نمایانگر یک نقطه هستند (این نقاط را ما به نمودار اضافه کردیم نه متلب). به نظر میآید متلب این نقاط را با یک خط به هم وصل کرده است.
اگر بخواهیم فقط نقاط رسم شوند چه؟ یا اینکه نمودارمان شبیه شکل بالا شود؟؟ الان زود است! در بخش رسم نمودار گسسته در متلب، به این مساله خواهیم پرداخت.
یک خاصیت جالب دستور plot در متلب
دستور plot در متلب ، یک خاصیت جالب دارد. این دستور به شما اجازه میدهد که مختصات محور x-ها را وارد نکنید! پس مقادیر محور x-ها را از کجا میفهمد؟ اگر فقط مقادیر y را به دستور plot بدهیم، متلب مقادیر x را 1، 2، 3 و … در نظر میگیرد. بنابراین نقاط ما به این شکل میشوند:
پس در متلب مینویسیم:
plot(y)
خروجی این دستور به شکل زیر است:
میبینید که کوهستان پابرجاست ولی اگر دقت کنید، مقادیر روی محور افقی متفاوت هستند. متلب مقادیر x را به ترتیب 1، 2، 3 … 5 در نظر گرفته است. در واقع مقدار x برای هر المان از y، برابر با اندیس آن المان درنظر گرفته شده است. مثلا عدد 0 در y، اندیسش برابر با 3 است. اگر به نمودار بالا دقت کنید، میبینید که مقدار x هم برای این المان 3 در نظر گرفته شده. پس اگر مقادیر محور x-ها را وارد نکنیم، با خطا مواجه نمیشویم. بلکه متلب، سرنوشت نمودار ما را به آن شکلی که توضیح دادیم درمیآورد!
خب تا اینجا نحوه رسم نمودار دو بعدی در متلب را آموختیم. در بخش بعدی میخواهیم به تغییر تنظیمات نمودار در متلب بپردازیم تا شاید بتوانیم این کوهستان زشتمان کمی زیبا کنیم.
تغییر تنظیمات نمودار در متلب
در بخش قبل دیدیم که نحوه رسم یک نمودار با دستور plot در متلب چگونه است. در این بخش میخواهیم ظاهر نموداری که رسم کردیم را کمی تغییر دهیم. شاید هم بیشتر از کمی تغییر دادیم! اما چه تغییراتی را میتوانیم روی نمودار اعمال کنیم؟ شما میتوانید رنگ، استایل و ضخامت خط و مارکر را در متلب تغییر دهید. با چه دستوری؟ دستور plot در متلب! بله، دستور plot علاوه بر x و y، ورودیهای دیگری نیز میپذیرد. این ورودیها دقیقا به ظاهر نمودار ربط دارند. برویم سراغ کدنویسی و ببینیم در عمل چگونه است…
ویدئو خوشگلاسیون!!
در این ویدئو نحوه تغییر رنگ نمودارها در متلب آموزش داده شده است. این ویدئو بخشی از دوره «متلب سوپر استارتر» است.
تغییر رنگ نمودار در متلب
تغییر رنگ نمودار در متلب
گفتیم برای تغییر رنگ نمودار باید ورودی دیگری به دستور plot بدهیم. رنگها در متلب یک کد مخصوص به خود دارند! نترسید کد پیچیدهای نیست. کدهای رنگی متلب در جدول زیر آورده شدهاند.
خب از این کدها چطور استفاده کنیم؟ فرض کنید بخواهیم نمودار مربوط به بردار y را با رنگ قرمز رسم کنیم. در این صورت کافی است بنویسیم:
plot(x, y, 'r')
مشاهده میکنید که کد مربوط به رنگ قرمز یعنی r را بین دو علامت ‘ ‘ قرار دادیم. سپس این کد را به plot دادیم. نتیجه اجرای کد بالا نمودار زیر است:
مشاهده میکنید که رنگ نمودار به قرمز تغییر پیدا کرد. به این ترتیب میتوانید رنگ نمودار را به رنگ دلخواهتان تغییر دهید. البته خوب است بدانید که این، سادهترین روش برای تغییر رنگ نمودار است. راههای دیگری وجود دارد که این امکان را به شما میدهد با همین دستور plot ، رنگ نمودار را به هر رنگی که دلتان بخواهد بتوانید تغییر دهید. اما فعلا در همین حد بدانید کافی است.
تغییر استایل خط نمودار در متلب
گاهی اوقات به دلایل مختلفی دوست داریم نمودارمان به صورت خطچین کشیده شود. در متلب هم این امکان وجود دارد که استایل خط نمودار را تغییر دهیم. درست مثل رنگها، برای استایل خط هم نیاز به کد داریم که به عنوان ورودی به خورد دستور plot در متلب بدهیم! لیست این استایلها در شکل زیر آورده شدهاند.
مشاهده میکنید که برای رسم نمودار در متلب از چهار نوع خط میتوانیم استفاده کنیم.این خطوط عبارتند از خط ساده، خط تیره، نقطه و نقطه-خط. فرض کنید بخواهیم نمودار y را با خط تیره نمایش دهیم. در این صورت باید بنویسیم:
plot(x, y, '--')
مشاهده میکنید که نمودار با خط تیره رسم شد. به شکل مشابه میتوانیم نمودار را با نقطه و نقطه-خط نیز رسم کنیم.
اضافه کردن مارکر به نمودار در متلب
به شکل 4 نگاه کنید. نقاط قرمز رنگ را میبینید؟ ما این نقاط را با نرمافزار paint اضافه کردیم، اما در این بخش میخواهیم نقاط نمودار را با متلب اضافه کنیم. در متلب، نقطههای قرمز (که در شکل 4 رسم شده) را مارکر(Marker) مینامند!
مارکر چیست؟
مارکرها علایمی هستند که به صورت منفصل قرار میگیرند. این علایم برای بهتر نمایش دادن نمودار استفاده میشوند. خصوصا زمانی که چند نمودار را با هم رسم میکنیم. علاوه بر این، مارکرها برای نمایش نقاط داده (Data Points) مورد استفاده میگیرند. در متلب برای اضافه کردن مارکرها به نمودار (درست مانند رنگها) کدهای خاصی وجود دارند. این کدها در شکل زیر آورده شدهاند:
نحوه اضافه کردن مارکر به نمودار
برای اضافه کردن مارکر به نمودار، کافی است بعد از استایل خط، کد مارکر را وارد کنیم. مثلا برای اینکه نمودار با خط و مارکر دایره رسم شود باید بنویسیم:
plot(x, y, '-o')
نتیجه اجرای دستور بالا تصویر زیر است:
مشاهده میکنید که نمودار با خط و مارکر دایره رسم شد! به همین ترتیب میتوانیم ترکیب خط و مارکرهای متفاوتی بسازیم.
plot(x, y, '-.s')
plot(x, y, '--^')
تغییر رنگ مارکر و خط در نمودار
برای تغییر رنگ نموداری که رسم شده، خیلی ساده کافی است کد رنگ را به کدهای دیگر اضافه کنیم. مثلا اگر بخواهیم نمودار x و y را با رنگ سبز، خطچین و مارکر ستاره (*) رسم کنیم باید بنویسیم:
plot(x, y, 'g--*')
با اجرای این کد نمودار زیر را خواهیم داشت:
مشاهده میکنید که نمودار با رنگ سبز، خطچین و مارکر ستاره رسم شد! شاید یک سوال مهم در ذهن کنجکاو برخی شکل گرفته باشد، اگر فقط کد مارکر را وارد کنیم چه میشود؟ در بخش بعدی به این سوال، پاسخ خواهیم داد…
رسم نمودار گسسته در متلب
اگر فقط کد مارکر را وارد کنیم (بدون استایل خط و رنگ) چه اتفاقی میافتد؟ در این صورت فقط مارکرها پلات میشوند. در واقع نمودار به صورت گسسته رسم میشود و تنها نقاط انفصال نمایش داده خواهند شد. مثلا اگر بخواهیم نمودار x و y را به صورت گسسته و با مارکر دایرهای رسم کنیم کافی است بنویسیم:
plot(x, y, 'o')
نتیجه اجرای کد بالا نمودار زیر است:
مشاهده میکنید که نقاط xy به صورت دایره نشان داده شدهاند. پس به این صورت میتوانیم مقادیر بردارها را به صورت گسسته رسم کنیم.
تغییر ضخامت خط در متلب
برای تغییر ضخامت خط در نمودار از یک آرگومان جدید استفاده میکنیم. آرگومان جدید کاملا مستقل از آرگومانهای گفته شده در بالا هستند. یعنی به صورت جداگانه باید وارد شود. برای تغییر ضخامت خط، عبارت “LineWidth” را وارد میکنیم. بعد کاما گذاشته و یک عدد وارد میکنیم. عددی که وارد میکنیم درجه ضخامت خطوط در نمودار را نشان میدهند. هرچه این عدد بزرگتر باشد، خط ضخیمتر خواهد شد. مثلا اگر بخواهیم نمودار y را با درجه ضخامت 5 رسم کنیم باید بنویسیم:
plot(x, y, 'LineWidth', 5)
با اجرای دستور فوق خطی که نمودار را رسم میکند ضخیمتر خواهدبود:
دقت کنید که LineWidth حتما باید بعد از آرگومانهای رنگ، نوع خط و مارکر قرار گیرد. در غیر اینصورت با خطا مواجه خواهیم شد:
plot(x, y, 'LineWidth', 5, '-o')
Error using plot
Data must be a single input of y-values or one or more pairs of x- and y-values.
در لینک Line Properties میتوانید در مورد ویژگیهای موجود اطلاعات بیشتری کسب کنید.
رسم دو نمودار در یک پنجره در متلب
با هر بار اجرای دستور plot در متلب، نمودار در یک پنجره جدید رسم میشود. گاهی اوقات نیاز است که دو یا چند نمودار را در یک پنجره رسم کنیم. این کار معمولا برای مقایسه نمودارها با یکدیگر انجام میشود. برای ترسیم دو نمودار در یک پنجره، از دستور hold on در متلب استفاده میشود. مثلا فرض کنید بخواهیم نمودار y و z را در یک پنجره رسم کنیم. برای این کار کافی است hold را در حالت on قرار داده و سپس نمودارها را رسم کنیم:
z = [-1, 3, 4, -1, -1]; plot(x, y) hold on plot(x, z)
با اجرای کد بالا نمودار زیر را خواهیم داشت:
مشاهده میکنید که دو نمودار در یک پنجره رسم شدند. نموداری که اول رسم شد، یعنی نمودار y، به رنگ آبی رسم شد. نمودار دوم هم به رنگ قرمز رسم شده است. در حالی که hold در حالت on است، رسم نمودارها در همان پنجره ادامه خواهد یافت. برای بازگشت به حالت پیش فرض plot، که در آن هر نمودار در پنجره جداگانه رسم میشود، hold off را اجرا کنید.
لیبل زدن محورهای نمودار در متلب
تا اینجا توانستیم نقاط موجود در یک بردار را با دستور plot رسم کنیم. فرض کنید که شما بخواهید این نمودار را به دوستتان بدهید. دوستتان از کجا بفهمد که محور x و y چه پارامتری را نشان میدهد؟ پس نیاز هست که یکسری توضیحات به نمودار اضافه کنیم. دو دستور xlabel و ylabel بهترتیب به دو محور x و y برچسب اضافه میکنند. این برچسبها مشخص میکنند که هرکدام از این محورها چه متغیری را نشان میدهند. مثلا فرض کنید عددهایی که در بردار y وجود دارند، دما در هر ساعت از شبانهروز باشند. مثلا ما بخواهیم برچسب محور x را عبارت “hour” و برچسب محور y را عبارت “temperature” را قرار دهیم. برای این کار کافی است بنویسیم:
plot(x, y) xlabel('hour') ylabel('temperature')
با اجرای کد بالا خواهیم داشت:
مشاهده میکنید که برچسبها به محور x و y نمودار اضافه شد. دقت کنید که ابتدا نمودار را رسم کنید و بعد لیبلها را اضافه کنید. در غیر اینصورت اگر اول لیبلها را اضافه کنیم، زمانی که دستور plot را اجرا میکنیم، لیبلها از بین خواهند رفت. مگر اینکه hold در حالت on باشد. در حالت hold on ترتیب رسم نمودار و اضافه کردن لیبلها مهم نیست.
اضافه کردن عنوان به نمودار در متلب
برای اضافه کردن عنوان به نمودار از دستور title در متلب استفاده میکنیم. عنوان یک نمودار در واقع توضیحی برای خود نمودار است. یعنی عنوان میگوید که این نمودار چه هست. در مثال قبل گفتیم که محور x، ساعت و محور y، دما است. اما اینجا یک سوال پیش میآید که این نمودار دمای کدام شهر یا کشور در کدام روز را نشان میدهد؟ این توضیحات را در قسمت عنوان نمودار میتوانیم وارد کنیم. مثلا فرض کنید که نمودار قبلی، نمودار دمای دیروز تهران باشد. در این صورت کافی است بنویسیم:
>> title('Tehran temperature yesterday')
با اجرای کد بالا نمودار زیر را خواهیم داشت:
مشاهده میکنید به نموداری که در بخش قبل رسم کردیم یک عنوان در قسمت بالای نمودار اضافه شد. همانند xlabel و ylabel، دستور title نیز باید بعد از plot نوشته شود.
دریافت PDF جلسه رسم نمودار در متلب
برای دریافت pdf این جلسه، لطفا ایمیل خود را در باکس زیر وارد کرده و روی دکمه «دریافت pdf» کلیک کنید.
جمعبندی
جلسه «نحوه رسم نمودار در متلب»، به رسم نمودار دو بعدی در متلب اختصاص دارد. در این پست ما به رسم نمودار با استفاده از نقاط در متلب پرداختیم. توضیحات به نمودار اضافه کردیم و توانستیم تنظیمات نمودار در متلب را نیز تغییر دهیم. امیدواریم این آموزش مورد توجه شما قرار گرفته باشد. سوالات و نظرات خود را برایمان کامنت کنید.
مطالب زیر را حتما مطالعه کنید
تعریف متغیر در متلب
آموزش متلب رایگان
دستور max در متلب
دستور محاسبه انتگرال در متلب
دستور input در متلب
دستور ezplot در متلب
30 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام
خسته نباشید.
برای بزرگ نمایی قسمتی از منحنی در یرینت فیگور به چه صورت می باشد؟
سلام و خداقوت.
چطوری میتونم روی نمودار جهت بذارم که داره به سمت صفر میره؟
سلام وقت بخیر
دستور رسم نمودار گوسین رو لطف میکنین
سلام
ممنون از آموزش خوبتون
من میخوام هر سطر یک ماتریس 31 سطر و 2 ستون رو به صورت یک نقطه نمایش بدم
با استفاده از حلقه for کردم ولی فقط و فقط یک نقطه رو نمایش میده
for i=1:31
for j=1:2
plot(D_new(i,1) , D_new(i,2) , ‘o’)
end
end
سلام، سپاس 🌹
از hold on استفاده کنید.
ا سلام یه سوال فرض مثال برای درج نتیجه میانگین یک ستون به طور مستقیم در تایتل نمودار چه دستوری باید نوشت؟
سلام، از کد زیر استفاده کنید:
title([‘mean= ‘, num2str(mean_value)])
با سلام
میخواستم بپرسم وقتی که در یه شکل چندین نمودار رسم کردیو اگر بخواهیم کنار نمودار یه راهنما بذاریم که هر رنگ مربوط به کدوم هست چه کاری باید انجام بدهیم ؟
سلام،
از دستور legend استفاده کنید.
سلام . وقت بخیر … برای کشیدن خطوط عمودی وسط نمودار و زدن چندین علامت ضربدر در نمودار باید از چه دستوری استفاده کنیم؟
سلام نگار عزیز،
کشیدن خط و علامت ضربدر همه با دستور plot قابل اجرا هست.
فقط کافیه از hold on استفاده کنید و نمودارها رو پشت سرهم رسم کنید.
سلام چگونه می توان محورها را به وسط نمودار منتقل کرد و کنار نباشند
سلام،
بعد از اینکه نمودارتون رو رسم کردید، کدهای زیر رو اجرا کنید:
a = axis;
amax = max(abs(a));
axis([-amax,amax,-amax,amax,-amax,amax]);
با اجرای این کدها، نقطه (0, 0) به وسط پنجره نمودار منتقل میشه.
سلام وقت بخیر
این کدی که شما نوشتید، فقط نمودار رو میاره از (0,0) شروع میکنه به رسم، اگر بخوایم که “خود محورها” بیان وسط باید چیکار کنیم ؟
منظور، محور y برای اینکه گوشه دست چپ نباشه و بیاد وسط باید چه کرد ؟
ممنون
سلام خیلی ممنون از توضیحات خوبتون ،نمودارهایی که دارای سه متغیر هستند را چطور میتوان به صورت سه بعدی رسم کرد
سلام، سپاس.
روشهای مختلفی برای رسم نمودارهای سهبعدی وجود داره. برای اطلاعات بیشتر به لینک زیر مراجعه کنید:
رسم نمودار سه بعدی در متلب
سلام وقت بخیر
ببخشید برای رسم توابعی مثله تابع زنگوله ای. تابع سیگموید. تابع گوسین و….
چجور باید پیش بریم!؟
سلام
برای رسم هر نموداری باید سه کار زیر رو به ترتیب انجام بدید:
1- تعیین ورودی های تابع و تعریف یک بردار یا بازه اعداد با دستوری مثل linspace
2- نوشتن کد تابع مدنظر در متلب و بدست آوردن خروجی
3- رسم نمودار با استفاده از دستور مناسب مثلا plot یا plot3 و غیره
سلام چطور میشه تنظیمات درجه بندی محور های مختصات رو تغییر بدیم ؟ متاسفانه مثلا محور X بین 0 تا 1 بصورت یکصدم یکصدم مدرج شده و نمیشه تعییرش داد. مقدار xTick تغییر میدم 10 تا 10 تا مدرج بشه اما نمیشه لطفا راهنمایی کنید
سلام،
با دستور xticks میتونید درجهبندی رو تغییر بدید. مثلا اگر بخواید محور x رو دو دهم دو دهم مندرج کنید از دستور زیر میتونید استفاده کنید:
xticks(0:0.2:1)
سلام و سپاس خدا قوت
سلام
سپاس 🌹🙏
سلام میخوام یه منحنی درست کنم درونش اعداد مختلف داره مثلا منحنی بار را میخوام تمرین کنم که منحنیش در ساعاتی بالا و در ساعاتی پایین است لطفا کمک کنید
سلام،
لینک زیر رو باز کنید، توضیح کامل دستور bar آورده شده.
لینک
برای مقادیری که پایین هستند، کافیه مقادیر رو منفی کنید.
سلام
اگر بخوایم plot)x,y( استفاده کنیم چطور میتونیم محور x رو مقدار متغیر x بذاریم؟
سلام،
منظورتون رو متوجه نشدم، لطفا بیشتر توضیح بدید.
خیلی خوب بود مرسی واقعا
کامل و جامع
فقط یه سوال!!
چطوری دوتا نمودار رو تو یه فریم بیاریم؟ نه که با هم رسم کنیم… منظورم اینه که دوتا نمودار رو جدا تو یه قالب نشون بدیم؟؟
اصلا ممکنه؟
سلام
سپاس
استفاده از subplot به شما این امکان رو میده که در یک figure تعداد زیادی نمودار داشته باشید. یک نمونه مثال در تصویر زیر:
مرسی. خیلی کامل توضیح دادین. لطفا نمودارای دیگه متلب رو هم توضیح بدین.
سلام
سپاس
بله، انشالله این کار رو میکنیم.