رسم نمودار دو بعدی (2D) و سه بعدی (3D) در نرم‌افزار متلب (MATLAB)

رسم نمودار دو بعدی (2D) و سه بعدی (3D) در نرم‌افزار متلب (MATLAB)

نویسنده: لرنیکس
آخرین بروزرسانی: ۱۳۹۹/۰۶/۲۶
بازدیدها: ۱,۸۶۳

نرم‌افزار متلب (MATLAB) یکی از قدرتمندترین ابزارهای رسم نمودارهای دو بُعدی و سه بُعدی است که امکانات متنوع و گسترده‌ای را در اختیار کاربر قرار می‌دهد. در ادامه به توضیح روش‌های رسم نمودارهای دو بعدی و سه بعدی پرداخته خواهد شد.

 

رسم نمودار دو بعدی یا خط (2D Plot)

برای رسم نمودار دو بعدی (2D) می‌توان از تابع plot استفاده کرد. به عنوان مثال، نمودار تابع سینوس از 0 تا 2π به صورت زیر رسم می‌شود که در آن pi همان عدد پی است. شکل 1 نمودار رسم شده را نمایش می‌دهد.

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

نمودار تابع سینوس از 0 تا 2π

شکل 1 – نمودار تابع سینوس از 0 تا 2π

 

با استفاده از دستورهای xlabel و ylabel عنوان محورها و با استفاده از دستور title عنوان نمودار تعیین می‌شود. برای مثال قبل عنوان اصلی نمودار و عنوان محورها به صورت زیر تعیین می‌شود. در اینجا ورودی توابع xlabel ، ylabel و title رشته هستند و داخل ' ' (Single Quotes) قرار می‌گیرند. شکل 2 نتیجه حاصل را نمایش می‌دهد.

xlabel('x')
ylabel('sin(x)')
title('Plot of the Sine Function')

عنوان نمودار و محورها برای تابع سینوس از 0 تا 2π

شکل 2 – عنوان نمودار و محورها برای تابع سینوس از 0 تا 2π

 

برای تغییر رنگ، نوع خط و سایر ویژگی‌های نمودار، می‌توان ورودی‌های دیگری نیز به تابع plot اضافه کرد. به عنوان مثال، برای رسم نمودار خط‌چین قرمز کد زیر نوشته می‌شود. شکل 3 نتیجه حاصل را نمایش می‌دهد.

plot(x,y,'r--')

نمودار به صورت خط‌چین قرمز

شکل 3 – نمودار به صورت خط‌چین قرمز

 

ورودی سوم '--r' ویژگی‌های خط را تعیین می‌کند. هر ویژگی مانند رنگ، استایل و نشانگر (Marker) را می‌توان با استفاده از کاراکترها تعیین کرد. نشانگر، نمادی است که برای رسم هر نقطه (یا داده) استفاده می‌شود؛ مانند +، o یا *. به عنوان مثال، '*:g' یک خط نقطه‌چین سبز رنگ با نشانگر * رسم می‌کند.

نکته: عنوان نمودار و محورها که با دستورات xlabel ، ylabel و title مشخص شده بودند در رسم‌های بعدی دیگر در شکل وجود ندارند و باید مجددا تعیین شوند. متلب برای رسم هر نمودار، تمام تنظیمات قبلی را ریست می‌کند.

برای اضافه کردن نمودار جدید به شکل قبلی، می‌توان از دستور hold on استفاده کرد. تا زمانی که از دستور hold off استفاده نشود، تمام نمودارها در یک شکل نمایش داده می‌شوند. به عنوان مثال برای رسم تابع سینوس و کسینوس در کنار هم کد زیر نوشته می‌شود. در این کد از دستور legend برای مشخص کردن نام هر نمودار استفاده می‌شود. در حالت ساده، دستور legend به تعداد نمودارها، ورودی رشته (String) دریافت می‌کند که به ترتیب نام هر نمودار را مشخص می‌نماید. شکل 4 نتیجه حاصل را نمایش می‌دهد. 

x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)

 

hold on

 

y2 = cos(x);
plot(x,y2,':')

 

legend('sin','cos')

 

hold off

رسم توابع سینوس و کسینوس در یک شکل

شکل 4 – رسم توابع سینوس و کسینوس در یک شکل

 

رسم نمودار سه بعدی (3D Plot)

نمودارهای سه بعدی معمولا یک رویه (Surface) را که خود یک تابع دو متغییره به فرم z=f(x,y) است، نمایش می‌دهند. برای محاسبه مقدار z، ابتدا مجموعه‌ای از نقاط (x,y) در دامنه مورد نظر با استفاده از دستور meshgrid تولید می‌شود. سپس با استفاده از آن، مقدار z در هر نقطه محاسبه شده و نمودار برحسب آن رسم می‌شود. به عنوان مثال:

[X,Y] = meshgrid(-2:.2:2);
Z = X .* exp(-X.^2 - Y.^2);

در کد بالا، با استفاده از تابع meshgrid، یک مش در صفحه X-Y ایجاد می‌شود. خروجی این تابع دو ماتریس X و Y با ابعاد 21×21 است که بیان‌کننده مختصات گره‌های این مش (Node) هستند. با در اختیار داشتن مختصات هر گره، مقدار z در آن گره محاسبه می‌شود. برای رسم رویه مورد نظر، از تابع surf در نرم‌افزار متلب به صورت زیر استفاده می‌شود. شکل 5 نتیجه حاصل را نمایش می‌دهد.

surf(X,Y,Z)

رسم رویه (Surface) در نرم‌افزار متلب

شکل 5 – رسم رویه (Surface) در نرم‌افزار متلب

 

همانطور که در شکل 5 مشاهده می‌شود، رویه مورد نظر به همراه مش ایجاد شده، در یک فضای سه بعدی رسم شده‌است. تابع surf نه تنها خطوط متصل کننده گره‌های مش را رسم می‌کند، بلکه سطح هر المان را به صورت رنگی نمایش می‌دهد.

 

رسم چند نمودار در یک پنجره با استفاده از تابع Subplot

با استفاده از تابع subplot می‌توان چندین نمودار را کنار یکدیگر در یک پنجره نمایش داد. تابع subplot در حالت ساده سه ورودی دریافت می‌کند. دو ورودی اول تعداد نواحی را به صورت سطر و ستون تعیین می‌کند (ورودی اول متناظر با سطر و ورودی دوم متناظر با ستون است). ورودی سوم ناحیه فعال را برای رسم نمودار تعیین می‌کند. به عنوان مثال برای رسم 4 نمودار که در دو ردیف با دو ستون قرار می‌گیرند، کد زیر نوشته می‌شود. با توجه به اینکه در کد زیر از تابع mesh استفاده شده‌است، تنها خطوط متصل کننده گره‌های مش رسم می‌شود. نتیجه در شکل 6 نمایش داده شده‌است.

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));

 

subplot(2,2,1);
mesh(X);
title('X');

 

subplot(2,2,2);
mesh(Y);
title('Y');

 

subplot(2,2,3);
mesh(Z);
title('Z');

 

subplot(2,2,4);
mesh(X,Y,Z);
title('X,Y,Z');

رسم چهار نمودار در یک پنجره با استفاده از تابع subplot

شکل 6 – رسم چهار نمودار در یک پنجره با استفاده از تابع subplot

 

هر یک از توابع استفاده شده در این آموزش می‌توانند تنظیمات و ورودی‌های مختلفی دریافت نمایند. برای مشاهده راهنمای کامل استفاده از هر تابع، می‌توانید از دستور help در Command Window استفاده نمایید. به عنوان مثال برای مشاهده مستندات، توضیحات و جزئیات تابع surf عبارت زیر را در Command Window تایپ نمایید. پس از فشردن دکمه Enter مستندات تابع surf نمایش داده می‌شود.

help surf
امتیاز :

دیدگاه بگذارید

avatar