یکی از قابلیتهای نرمافزار متلب (MATLAB) اضافه کردن خطوط شبکه یا گرید (Grid) روی انواع نمودارهای دو بُعدی (2D) و سه بُعدی (3D) است. وجود خطوط شبکه یا گرید روی نمودار، به خوانایی و درک بهتر آن کمک میکند. در نرمافزار متلب، امکان تغییر مکان، تراکم، استایل، رنگ و سایر ویژگیهای خطوط شبکه وجود دارد. در ادامه، نحوه نمایش خطوط شبکه (گرید) و سفارشیسازی آن به طور کامل شرح داده میشود.
فهرست مطالب
- 1 آموزش نمایش خطوط شبکه اصلی یا گرید اصلی (Major Grid) روی انواع نمودارها در نرمافزار متلب
- 2 آموزش نمایش خطوط شبکه فرعی یا گرید فرعی (Minor Grid) روی انواع نمودارها در نرمافزار متلب
- 3 آموزش نمایش خطوط شبکه یا گرید (Grid) در محلهای دلخواه روی نمودار در نرمافزار متلب
- 4 آموزش تغییر ویژگیهای ظاهری خطوط شبکه (گرید) در نرمافزار متلب
- 4.1 آموزش تغییر رنگ خطوط شبکه (گرید) در نرمافزار متلب
- 4.2 آموزش تغییر استایل خطوط شبکه (گرید) در نرمافزار متلب
- 4.3 آموزش تغییر میزان شفافیت خطوط شبکه (گرید) در نرمافزار متلب
- 4.4 آموزش نمایش خطوط شبکه (گرید) روی سایر لایههای رسم شده در نرمافزار متلب
- 4.5 آموزش نمایش خطوط شبکه (گرید) در جهتهای دلخواه در نرمافزار متلب
- 4.6 سایر ویژگیهای ظاهری خطوط شبکه (گرید) در نرمافزار متلب
- 5 آموزش حذف خطوط شبکه یا گرید از روی نمودار در نرمافزار متلب
آموزش نمایش خطوط شبکه اصلی یا گرید اصلی (Major Grid) روی انواع نمودارها در نرمافزار متلب
توابع مختلفی برای رسم انواع نمودارهای دو بعدی (2D) و سه بعدی (3D) در نرمافزار متلب وجود دارد که از میان آنها میتوان به توابع زیر اشاره کرد:
- تابع plot
- تابع plot3
- تابع ezplot
- تابع polarplot
- تابع scatter
- تابع scatter3
- تابع surf
- تابع bar
- تابع bar3
- تابع area
- و ...
در مثالهای موجود در این آموزش، از تابع plot استفاده شدهاست؛ نحوه نمایش و سفارشیسازی خطوط شبکه یا گرید برای تمام توابع به یک صورت است. با استفاده از کد زیر، یک نمودار دلخواه به صورت شکل 1 رسم میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
شکل 1 – رسم نمودار دلخواه با استفاده از تابع plot در نرمافزار متلب
برای فعال شدن خطوط شبکه اصلی (گرید اصلی) روی نمودار، کافیست دستور grid on پس از رسم نمودار اجرا شود. به عبارت دیگر، برای نمایش خطوط شبکه اصلی (گرید اصلی)، پس از تابعی که برای رسم نمودار استفاده شدهاست، دستور grid on نوشته میشود. به عنوان مثال، برای نمایش خطوط شبکه اصلی (گرید اصلی) روی یک نمودار دلخواه که با استفاده از تابع plot رسم شدهاست، کد زیر نوشته میشود. با اجرای کد زیر، نمودار مطابق شکل 2 به همراه خطوط شبکه اصلی نمایش داده میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
شکل 2 – نمایش خطوط شبکه اصلی یا گرید اصلی (Major Grid) روی نمودار
قابل ذکر است در کد بالا، بین تابع plot و دستور grid on میتوان کدهای دیگری را نیز نوشته و اجرا کرد. تنها کافیست دستور grid on پس از تابع plot اجرا شود. همچنین برای اجرای دستور grid on، میتوان تنها عبارت grid را نوشته و اجرا کرد. اجرای دستور grid و grid on هر دو منجر به نمایش خطوط شبکه اصلی (گرید اصلی) میشوند.
آموزش نمایش خطوط شبکه فرعی یا گرید فرعی (Minor Grid) روی انواع نمودارها در نرمافزار متلب
در کنار خطوط شبکه اصلی که در قسمت قبل توضیح داده شد، خطوط شبکه فرعی (گرید فرعی) نیز وجود دارد که بین خطوط اصلی رسم میشوند و به این ترتیب تراکم خطوط شبکه را افزایش میدهند. برای فعال شدن خطوط شبکه فرعی (گرید فرعی) کافیست پس از دستور grid on، دستور grid minor اجرا شود. به عنوان مثال، برای نمایش خطوط شبکه فرعی (گرید فرعی) روی نمودار شکل 2، کد زیر نوشته میشود که نتیجه آن در شکل 3 نمایش داده شدهاست.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
grid minor
شکل 3 – نمایش خطوط شبکه فرعی یا گرید فرعی (Minor Grid) روی نمودار
آموزش نمایش خطوط شبکه یا گرید (Grid) در محلهای دلخواه روی نمودار در نرمافزار متلب
در نرمافزار متلب از نسخه R2016b به بعد، میتوان محل خطنشانها (tick) یا برجستگیهای موجود روی محورهای نمودار را به دلخواه تغییر داد. در شکل 4، خطنشانها با دایرههای قرمز رنگ مشخص شدهاند که مقدار عددی آنها نیز در کنارشان درج شدهاست.
شکل 4 - خطنشانهای محورهای نمودار در نرمافزار متلب
در حالت پیشفرض، متلب به صورت خودکار تعداد و محل قرارگیری خطنشانها (tick) را تعیین میکند، اما با استفاده از توابع xticks، yticks و zticks میتوان محل قرارگیری خطنشانها را به ترتیب روی محورهای x و y و z تعیین کرد. به عنوان مثال، در نمودار شکل 1، برای نمایش خطنشان (tick) در نقاط 1 و 2 و 3 روی محور x و در نقاط 0 و 0.5 و 1 روی محور y، کد زیر نوشته میشود. با اجرای کد زیر، نمودار مطابق شکل 5 رسم میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
xticks([1 2 3])
yticks([0 0.5 1])
شکل 5 – تغییر محل خطنشانهای محورهای نمودار
در کد بالا، با توجه به دو بعدی بودن نمودار، تنها از توابع xticks و yticks استفاده شدهاست. در صورتی که نمودار سه بعدی باشد، میتوان از تابع zticks برای تعیین محل خطنشانهای محور z استفاده کرد. قابل ذکر است الزاماً نیازی نیست به طور همزمان از توابع xticks، yticks و zticks استفاده شود. به عنوان مثال، ممکن است در یک نمودار سه بعدی، تنها بخواهیم محل خطنشانهای محور x را تغییر دهیم، در این حالت تنها از تابع xticks برای تعیین محل خطنشانهای محور x استفاده میشود و محل خطنشانهای دو محور دیگر به صورت پیشفرض باقی میماند.
به صورت خودکار، مقدار عددی هر یک از خطنشانها کنار آن درج میشود. میتوان از توابع xticklabels، yticklabels و zticklabels برای تغییر عبارت نوشته شده کنار خطنشانها به ترتیب برای محورهای x و y و z استفاده کرد. به عنوان مثال، در نمودار شکل 1، برای نمایش خطنشانها در نقاط 1 و 2 و 3 روی محور x و درج مقادیر آنها با حروف انگلیسی و همچنین حذف خطنشانهای محور y، کد زیر نوشته میشود. با اجرای کد زیر، نمودار مطابق شکل 6 رسم میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
xticks([1 2 3])
xticklabels({'One','Two','Three'})
yticks([])
شکل 6 – نامگذاری خطنشانهای محور نمودار در نرمافزار متلب
در نرمافزار متلب، خطوط شبکه اصلی یا گرید اصلی (Major Grid) روی خطنشانهای هر محور رسم میشود. برای رسم خطوط شبکه اصلی (گرید اصلی) در محلهای دلخواه، میتوان ابتدا با استفاده از توابع xticks، yticks و zticks محل خطنشانهای مورد نظر را تعریف نموده و سپس دستور grid on یا grid را اجرا کرد. به عنوان مثال، در نمودار شکل 1، برای رسم خطوط شبکه به صورت عمودی در نقاط 1 و2 و 3 روی محور x (موازی با محور y) و حذف خطوط شبکه افقی، کد زیر نوشته میشود. با اجرای کد زیر، نمودار مطابق شکل 7 رسم میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
xticks([1 2 3])
xticklabels({'One','Two','Three'})
yticks([])
grid on
شکل 7 – رسم خطوط شبکه (گرید) در محلهای دلخواه
آموزش تغییر ویژگیهای ظاهری خطوط شبکه (گرید) در نرمافزار متلب
در نرمافزار متلب، محورهای نمودار یک شئ یا آبجکت (Object) هستند که ویژگیهای مختلفی را در خود جای دادهاند. از جمله این ویژگیها میتوان به رنگ، استایل و میزان شفافیت خطوط شبکه اشاره کرد که به سادگی میتوان به آنها دسترسی داشته و مقادیر آنها را ویرایش کرد. در ادامه نحوه ویرایش این ویژگیها شرح داده میشود.
آموزش تغییر رنگ خطوط شبکه (گرید) در نرمافزار متلب
برای تغییر رنگ خطوط شبکه نمودار شکل 2 به رنگ قرمز، کد زیر نوشته میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
ax=gca;
ax.GridColor=[1 0 0]; %RGB Vector: Red=[1 0 0]
در کد بالا، پس از رسم نمودار و نمایش خطوط شبکه، شئ (Object) محورها در یک متغییر با نام دلخواه ax قرار گرفته است؛ سپس ویژگی GridColor از شئ ax انتخاب شده و به مقدار دلخواه تغییر داده شدهاست. برای انتخاب ویژگی یک شئ، نام ویژگی مورد نظر با یک نقطه، پس از نام شئ قرار میگیرد. برای تغییر رنگ خطوط شبکه، هم میتوان از کد رنگ RGB و هم از نام رنگهای پیشفرض نرمافزار متلب (مانند ‘red’ یا ‘r’ برای رنگ قرمز) استفاده کرد. رنگهای پیشفرض نرمافزار متلب محدود است؛ برای اعمال هر رنگ دلخواه، میتوان از کد رنگ RGB استفاده کرد. کد رنگ با ساختار RGB، یک بردار با سه درایه است که به ترتیب از چپ به راست میزان رنگ قرمز، سبز و آبی را مشخص میکند. مقادیر این درایهها در بازه [0,1] قرار دارد و میزان شدت سه رنگ قرمز، سبز و آبی را تعیین میکند. در کد بالا، از ساختار RGB رنگ قرمز استفاده شدهاست. در جدول زیر، نام و کد رنگهای پیشفرض نرمافزار متلب آورده شدهاست.
نام رنگ | نام کامل | نام مخفف | بردار RGB | رنگ |
زرد | 'yellow' | 'y' | [1 1 0] | |
ارغوانی | 'magenta' | 'm' | [1 0 1] | |
فیروزهای | 'cyan' | 'c' | [0 1 1] | |
قرمز | 'red' | 'r' | [1 0 0] | |
سبز | 'green' | 'g' | [0 1 0] | |
آبی | 'blue' | 'b' | [0 0 1] | |
سفید | 'white' | 'w' | [1 1 1] | |
مشکی | 'black' | 'k' | [0 0 0] |
با توجه به اینکه رنگ قرمز از رنگهای پیشفرض نرمافزار متلب است، میتوان از نام کامل یا مخفف آن نیز استفاده کرد. بنابراین، کد بالا را به یکی از دو صورت زیر نیز میتوان نوشت. با اجرای هر یک از این سه کد، نتیجه یکسانی حاصل میشود که در شکل 8 نمایش داده شدهاست.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
ax=gca;
ax.GridColor='red';
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
ax=gca;
ax.GridColor='r';
شکل 8 – تغییر رنگ خطوط شبکه (گرید) در نرمافزار متلب
آموزش تغییر استایل خطوط شبکه (گرید) در نرمافزار متلب
خطوط شبکه (گرید) میتواند به صورت خط پیوسته، نقطهچین، خطچین و نقطهخط رسم شود. برای تغییر استایل خطوط شبکه، میتوان از ویژگی GridLineStyle استفاده کرد. به عنوان مثال، برای رسم خطوط شبکه نمودار شکل 2 به صورت نقطهخط، کد زیر نوشته میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
ax=gca;
ax.GridLineStyle='-.';
در کد بالا، برای رسم خطوط شبکه به صورت نقطهخط، از نماد نقطهخط استفاده شدهاست. در جدول زیر، نماد استایلهای مختلف برای خطوط شبکه (گرید) معرفی شدهاست.
استایل | نماد |
خط پیوسته | '-' |
خطچین | '--' |
نقطهچین | ':' |
نقطهخط | '-.' |
با اجرای کد بالا، خطوط شبکه مطابق شکل 9 به صورت نقطهخط رسم میشود.
شکل 9 – تغییر استایل خطوط شبکه (گرید) در نرمافزار متلب
آموزش تغییر میزان شفافیت خطوط شبکه (گرید) در نرمافزار متلب
برای تغییر میزان شفافیت خطوط شبکه (گرید)، میتوان از ویژگی GridAlpha استفاده کرد. مقدار این ویژگی باید در بازه [0,1] قرار داشته باشد که مقدار 0 معادل شفافیت کامل (نامرئی شدن) و مقدار 1 معادل غیرشفاف بودن خطوط شبکه است. مقدار پیشفرض ویژگی GridAlpha در نرمافزار متلب معادل 0.15 است. به عنوان مثال، برای آنکه خطوط شبکه نمودار شکل 2 به میزان 50% شفافیت داشته باشند (بیشتر از مقدار پیشفرض)، کد زیر نوشته میشود که نتیجه آن در شکل 10 نمایش داده شدهاست.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
ax=gca;
ax.GridAlpha=0.5;
شکل 10 – تغییر میزان شفافیت خطوط شبکه (گرید) در نرمافزار متلب
آموزش نمایش خطوط شبکه (گرید) روی سایر لایههای رسم شده در نرمافزار متلب
اگر نمودار رسم شده دارای سطح یا حجم باشد، به عنوان مثال وقتی با استفاده از تابع area سطح زیر نمودار نمایش داده میشود، یا با استفاده از تابع surf یک رویه رسم میشود، برای نمایش خطوط شبکه (گرید) روی سطوح یا احجام رسم شده، میتوان از ویژگی Layer استفاده کرد. به عنوان مثال، برای نمایش خطوط شبکه روی یک نمودار دلخواه که با استفاده از تابع area رسم شدهاست، کد زیر نوشته میشود. با اجرای کد زیر، نمودار مطابق شکل 11 رسم میشود که خطوط شبکه، روی سطح نمودار قرار دارد.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
area(x,y)
grid on
ax=gca;
ax.Layer='top';
شکل 11 – نمایش خطوط شبکه (گرید) روی لایهی رسم شده
آموزش نمایش خطوط شبکه (گرید) در جهتهای دلخواه در نرمافزار متلب
به طور پیشفرض، با اجرای دستور grid یا grid on، خطوط شبکه (گرید) در تمام جهات رسم میشود. با استفاده از ویژگیهای XGrid، YGrid و ZGrid میتوان نمایش یا عدم نمایش خطوط شبکه را به ترتیب از خطنشانهای محورهای x و y و z را تعیین کرد. این ویژگیها میتوانند مقدار on یا off داشته باشند، در حالت on خطوط شبکه نمایش داده میشود و در حالت off، خطوط شبکه حذف میگردد. در حالت پیشفرض، مقدار این ویژگیها on است. به عنوان مثال، اگر بخواهیم خطوط شبکه نمودار شکل 2، تنها از خطنشانهای محور x رسم شوند (تنها خطوط شبکه عمودی رسم شوند) و خطوط شبکه افقی حذف شوند، کد زیر نوشته میشود. با اجرای کد زیر، نمودار مطابق شکل 12 رسم میشود.
clear; clc; close all;
x=-2*pi:0.05:2*pi;
y=x.*sin(x);
plot(x,y)
grid on
ax=gca;
ax.XGrid='on'; %Default, This Line Could Be Removed.
ax.YGrid='off';
شکل 12 – حذف خطوط شبکه (گرید) افقی
سایر ویژگیهای ظاهری خطوط شبکه (گرید) در نرمافزار متلب
به غیر از ویژگیهای شرح داده شده، ویژگیهای متعدد دیگری نیز وجود دارد که به کمک انها میتوان ویژگیهای ظاهری خطوط شبکه (گرید) را سفارشیسازی کرد. در مثالهای قبل، نحوه استفاده از ویژگیها شرح داده شدهاست. در جدول زیر، تمام ویژگیهای موجود برای سفارشیسازی ویژگیهای ظاهری خطوط شبکه (گرید) در نمودارهای کارتزین (Cartesian) آورده شدهاست.
توضیح | ویژگی |
تعیین محل خطنشانها (Tick Marks) و خطوط شبکه اصلی | XTick, YTick, ZTick |
نمایش یا عدم نمایش خطوط شبکه اصلی (گرید اصلی) در هر جهت | XGrid, YGrid, ZGrid |
نمایش یا عدم نمایش خطوط شبکه فرعی (گرید فرعی) در هر جهت | XMinorGrid, YMinorGrid, ZMinorGrid |
ضخامت خطوط شبکه و خطنشانها | LineWidth |
استایل خطوط شبکه اصلی (گرید اصلی) | GridLineStyle |
استایل خطوط شبکه فرعی (گرید فرعی) | MinorGridLineStyle |
رنگ خطوط شبکه اصلی (گرید اصلی) | GridColor |
رنگ خطوط شبکه فرعی (گرید فرعی) | MinorGridColor |
شفافیت خطوط شبکه اصلی (گرید اصلی) | GridAlpha |
شفافیت خطوط شبکه فرعی (گرید فرعی) | MinorGridAlpha |
مکان خطوط شبکه نسبت به نمودار رسم شده | Layer |
در جدول زیر، تمام ویژگیهای موجود برای سفارشیسازی ویژگیهای ظاهری خطوط شبکه (گرید) در نمودارهای قطبی (Polar) آورده شدهاست.
توضیح | ویژگی |
تعیین محل خطنشانها (Tick Marks) و خطوط شبکه اصلی | ThetaTick, RTick |
نمایش یا عدم نمایش خطوط شبکه اصلی (گرید اصلی) در هر جهت | ThetaGrid, RGrid |
نمایش یا عدم نمایش خطوط شبکه فرعی (گرید فرعی) در هر جهت | ThetaMinorGrid, RMinorGrid |
ضخامت خطوط شبکه و خطنشانها | LineWidth |
استایل خطوط شبکه اصلی (گرید اصلی) | GridLineStyle |
استایل خطوط شبکه فرعی (گرید فرعی) | MinorGridLineStyle |
رنگ خطوط شبکه اصلی (گرید اصلی) | GridColor |
رنگ خطوط شبکه فرعی (گرید فرعی) | MinorGridColor |
شفافیت خطوط شبکه اصلی (گرید اصلی) | GridAlpha |
شفافیت خطوط شبکه فرعی (گرید فرعی) | MinorGridAlpha |
مکان خطوط شبکه نسبت به نمودار رسم شده | Layer |
همچنین برای سفارشیسازی ویژگیهای ظاهری خطوط شبکه (گرید) در نمودارهای جغرافیایی (Geographic) از ویژگیهای جدول زیر میتوان استفاده کرد.
توضیح | ویژگی |
نمایش خطوط شبکه طول و عرض جغرافیایی | Grid |
ضخامت خطوط شبکه و خطنشانها | LineWidth |
استایل خطوط شبکه | GridLineStyle |
رنگ خطوط شبکه | GridColor |
شفافیت خطوط شبکه | GridAlpha |
آموزش حذف خطوط شبکه یا گرید از روی نمودار در نرمافزار متلب
برای حذف تمام خطوط شبکه (گرید)، کافیست دستور grid off اجرا شود. با اجرای این دستور، خطوط شبکه یا گرید از روی نمودار جاری حذف میشود.
دیدگاه بگذارید