همگام سازی (یکسان سازی - Synchronize) محدوده (حداقل و حداکثر مقدار) محورهای مختصات (Axes) دو بعدی (2D) چند شکل (با قابلیت بزرگنمایی (Zoom In و Zoom Out) یا جابجایی (Pan) همزمان آن چند شکل)، با دستور linkaxes ، در متلب (MATLAB)
در خیلی از مواقع، در متلب (MATLAB)، چند شکل را رسم می کنیم که اطلاعات موجود در آن شکل ها، با یکدیگر مرتبط می باشند. بنابراین سعی می کنیم که آن شکل ها به گونه ای رسم شوند که با یکدیگر هماهنگ باشند و بتوانیم آنها را بهتر مقایسه کنیم. یکی از مواردی که در این زمینه به ما کمک می کند، یکسان کردن محدوده (حداقل و حداکثر مقدار) محورهای مختصات (Axes) دو بعدی (2D) آن چند شکل می باشد تا مطمئن شویم که همگی در یک محدوده (حداقل و حداکثر مقدار) خاص از محورهای مختصات (Axes) دو بعدی (2D) رسم شده اند.
دستور linkaxes در متلب (MATLAB)، به ما این امکان را می دهد که چند شکل را با محدوده (حداقل و حداکثر مقدار) محورهای مختصات (Axes) دو بعدی (2D) به صورت یکسان رسم کنیم. اما این دستور، علاوه بر این مورد، یک ویژگی با ارزش دیگر نیز دارد، به این صورت که وقتی ما در پنجره نمایش شکل، از ابزارهایی مثل بزرگنمایی (Zoom In یا Zoom Out) یا جابجایی (Pan) استفاده می کنیم، وقتی یک شکل را بزرگ یا کوچک کنیم (با ابزار Zoom In یا Zoom Out) یا آن را جابجا نماییم (با ابزار Pan)، همین تغییرات دقیقا به سایر شکل ها نیز اعمال می شود و به عنوان مثال، وقتی بخشی از یک شکل را بزرگنمایی می کنیم، دقیقا همان بخش از شکل های دیگر نیز بزرگنمایی می شود و بنابراین مقایسه آن بخش از همه شکل ها، به راحتی صورت می گیرد.
بنابراین گفته می شود که دستور linkaxes ، عملیات همگام سازی (یکسان سازی - Synchronize) محدوده (حداقل و حداکثر مقدار) محورهای مختصات (Axes) دو بعدی (2D) را برای چند شکل اجرا می کند (برخی تغییرات نمایش برای یک شکل، باعث تغییر نمایش سایر شکل ها نیز می شود).
به عنوان مثال، شکل زیر را در مورد استفاده از ابزار بزرگنمایی (Zoom In) ببینید (در هنگام به کار بردن دستور linkaxes) (دستور subplot نیز برای نمایش دو شکل در یک پنجره، به کار رفته است ( کلید شماره 52 )) :
مشاهده می کنید که با بزرگنمایی (Zoom In) در بخسی از شکل اول، دقیقا بزرگنمایی (Zoom In) در همان بخش از شکل دوم نیز صورت می گیرد.
و همچنین شکل زیر را در مورد استفاده از ابزار جابجایی (Pan) ببینید (در هنگام به کار بردن دستور linkaxes) (دستور subplot نیز برای نمایش دو شکل در یک پنجره، به کار رفته است ( کلید شماره 52 )) :
مشاهده می کنید که با جابجایی (Pan) شکل اول، دقیقا همان جابجایی (Pan) برای شکل دوم نیز صورت می گیرد.
هنگام استفاده از دستور linkaxes ، می توانیم تعیین کنیم که همگام سازی (یکسان سازی - Synchronize) برای هر دو محور افقی (محور x) و محور عمودی (محور y) باشد یا اینکه تنها برای محور افقی (محور x) و یا اینکه تنها برای محور عمودی (محور y) اجرا گردد.
برای اینکه هم حدود محور افقی (محور x) و هم حدود محور عمودی (محور y) برای دو شکل (یا چند شکل)، همگام سازی (یکسان سازی - Synchronize) شود، عبارت زیر را در پرانتز دستور linkaxes می نویسیم :
به عنوان مثال (مثالی از حالت دو شکل) :
یا اگر بخواهیم که تنها حدود محور عمودی (محور y) برای دو شکل (یا چند شکل)، همگام سازی (یکسان سازی - Synchronize) شود، عبارت زیر را در پرانتز دستور linkaxes می نویسیم :
به عنوان مثال (مثالی از حالت دو شکل) :
یا اگر بخواهیم که تنها حدود محور افقی (محور x) برای دو شکل (یا چند شکل)، همگام سازی (یکسان سازی - Synchronize) شود، عبارت زیر را در پرانتز دستور linkaxes می نویسیم :
به عنوان مثال (مثالی از حالت دو شکل) :
دستور linkaxes می تواند برای چند شکل (Figure) رسم شده در پنجره های جداگانه به کار رود و همچنین می تواند برای چند شکل (Figure) رسم شده در کنار یکدیگر و در یک پنجره نیز به کار رود (از دستور subplot برای برای رسم چند شکل در یک پنجره استفاده می کنیم ( کلید شماره 52 )).
چون در حالت رسم چند شکل در یک پنجره، مقاسه آنها ساده تر است، مثال ها را بر اساس همین حالت کدنویسی می کنیم. بنابراین اگر با چگونگی استفاده از دستور subplot برای رسم چند شکل در کنار یکدیگر و در یک پنجره، آشنایی ندارید، توصیه می شود ابتدا کلید شماره 52 را بخوانید.
به مثال زیر توجه کنید :
در این مثال، حدود محور عمودی (محور y) برای دو شکل، متفاوت می باشد.
ابتدا شکل را بدون استفاده از دستور linkaxes رسم می کنیم :
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
دستور peaks در متلب (MATLAB)، اطلاعات (ماتریس) لازم برای ساخت شکل مورد نظرمان را فراهم می کند ( کلید شماره 121 ).
دستور surf در متلب (MATLAB)، برای رسم مقادیر یک ماتریس دو بعدی، به صورت یک سطح برجسته، به کار می رود ( کلید شماره 114 ).
دستورهای xlabel و ylabel برای تعیین عنوان برای محورهای x و y از شکل، به کار می روند ( کلید شماره 92 ).
دستور title در متلب (MATLAB)، یک عنوان را برای شکل نمایش می دهد.
نتیجه :
مشاهده می کنید که حدود محور عمودی (محور y) برای شکل اول، از 0 تا 1 و برای شکل دوم از 0 تا 2 می باشد (حدود محور x در هر دو شکل، برابر است و نیازی به تغییر ندارد).
اکنون دستور linkaxes را به کار می بریم :
تغییرات صورت گرفته در کدها، عبارتند از :
که بر اساس ax(1) و ax(2) ، شکل ها را شناسایی کرده و آنها را به دستور linkaxes می دهیم.
نتیجه :
مشاهده می کنید که حدود محور عمودی (محور y) برای هر دو شکل، از 0 تا 2 می باشد.
اکنون از ابزار بزرگنمایی (Zoom In) برای بزرگنمایی بخشی از شکل استفاده نماییم، بنابراین به صورت همزمان، همان بخش از هر دو شکل، بزرگنمایی (Zoom In) خواهد شد :
یا می توانیم از ابزار جابجایی (Pan) برای جابجایی (Pan) هماهنگ (همزمان) هر دو شکل، استفاده نماییم :
در این مثال، حدود محور افقی (محور x) برای دو شکل، متفاوت می باشد.
ابتدا شکل را بدون استفاده از دستور linkaxes رسم می کنیم :
نتیجه :
مشاهده می کنید که حدود محور افقی (محور x) برای شکل اول، از 0 تا 7 و برای شکل دوم از 0 تا 14 می باشد (حدود محور y در هر دو شکل، برابر است و نیازی به تغییر ندارد).
اکنون دستور linkaxes را به کار می بریم :
نتیجه :
مشاهده می کنید که حدود محور افقی (محور x) برای هر دو شکل، از 0 تا 14 می باشد.
در این مثال، حدود هر دو محور عمودی (محور y) و افقی (محور x) برای دو شکل، متفاوت می باشد.
ابتدا شکل را بدون استفاده از دستور linkaxes رسم می کنیم :
نتیجه :
اکنون تعیین می کنیم که هم حدود محور عمودی (محور y) و هم حدود محور افقی (محور x) برای دو شکل، همگام سازی (یکسان سازی - Synchronize) شود (عبارت 'xy' را در پرانتز دستور linkaxes می نویسیم) :
نتیجه :
این بار تعیین می کنیم که تنها حدود محور عمودی (محور y) برای دو شکل، همگام سازی (یکسان سازی - Synchronize) شود (عبارت 'y' را در پرانتز دستور linkaxes می نویسیم) :
نتیجه :
این بار تعیین می کنیم که تنها حدود محور افقی (محور x) برای دو شکل، همگام سازی (یکسان سازی - Synchronize) شود (عبارت 'x' را در پرانتز دستور linkaxes می نویسیم) :
نتیجه :
در این مثال، رسم 3 شکل در کنار یکدیگر را داریم که حدود هر دو محور عمودی (محور y) و افقی (محور x) برای 3 شکل، متفاوت می باشد.
ابتدا شکل را بدون استفاده از دستور linkaxes رسم می کنیم :
نتیجه :
اکنون دستور linkaxes را به کار می بریم :
به تغییرات صورت گرفته در کدها دقت کنید :