رسم چند شکل کنار هم در یک پنجره، با دستور subplot ، در متلب (MATLAB)
متلب برای هر شکل که باید در خروجی نمایش داده شود، پنجره ای جدید را باز می کند. اما ممکن است که نیاز داشته باشیم که چندین شکل، به طور جداگانه، اما کنار هم و در یک پنجره رسم شوند تا بتوانیم آنها را با هم مقایسه کنیم. برای این منظور، در متلب از دستور subplot استفاده می شود. نحوه استفاده از دستور subplot را در مثال زیر شرح می دهیم :
فرض کنید بخواهیم 4 تابع زیر را با دستور ezplot رسم کنیم : \begin{equation} y=x \end{equation} \begin{equation} y=x^2 \end{equation} \begin{equation} y=x^3 \end{equation} \begin{equation} y=x^4 \end{equation} و همچنین بخواهیم که نتیجه به صورت 4 شکل جداگانه، اما در یک پنجره و در کنار هم نمایش داده شود. برای این منظور، کدهای زیر را می نویسیم :
ezplot('x',[-3,3])
title('y=x')
subplot(2,2,2)
ezplot('x^2',[-3,3])
title('y=x^2')
subplot(2,2,3)
ezplot('x^3',[-3,3])
title('y=x^3')
subplot(2,2,4)
ezplot('x^4',[-3,3])
title('y=x^4')
نتیجه :
مشاهده می کنید که چهار شکل مورد نظرمان، در کنار هم و در یک پنجره نمایش داده شده اند. اما اکنون شرح بدهیم که چگونه با دستور subplot ، تعداد شکل ها و موقعیت آنها در کنار هم را تعیین کرده ایم. اگر به کدها نگاه کنید، متوجه خواهید شد که برای هر شکل، 3 خط کد نوشته ایم، خط اول با دستور subplot است که تعیین می کند موقعیت آن شکل در کنار سایر شکل ها چگونه باید باشد، خط دوم با دستور ezplot است که برای رسم تابع مورد نظرمان می باشد و خط سوم عنوانی را به شکل اختصاص می دهد تا آن را در کنار سایر شکل ها، به راحتی تشخیص بدهیم. چون 4 شکل داریم، بنابراین 4 بار از دستور subplot در کدها استفاده کردیم. برای 4 شکل، مقادیری که باید درون پرانتز هر دستور subplot نوشته شود، به صورت شکل زیر می باشد :
با توجه به شکل بالا، مشاهده می کنید که در پنجره نمایش شکل ها، 2 ردیف و 2 ستون متشکل از شکل ها خواهیم داشت. بنابراین عدد اول درون پرانتز دستور subplot ، نشان دهنده تعداد کل ردیف ها و عدد دوم درون پرانتز دستور subplot ، نشان دهنده تعداد کل ستون ها برای چیدمان شکل ها در کنار هم می باشد. برای هر موقعیت، یک عدد در نظر گرفته شده است که چون 4 شکل داریم، این عدد از 1 تا 4 می تواند باشد. این عدد، سومین عدد، درون پرانتز دستور subplot خواهد بود. بنابراین با دستور subplot ، قبل از هر دستور ezplot ، موقعیت شکل مربوط به آن دستور ezplot را مشخص کرده ایم.
سلام
سوال من اینه که اگه بخوایم تو هر کدوم از این محورهای مختصات جداگانه، دو تا نمودار بکشیم باید چه کار کنیم؟
من دو تا نمودار اصلی دارم که از یه سری داده داخل ماتریس، تشکیل شدن. با دستوری که شما آموزش دادید، توی دو تا محور مختصات جداگانه که همزمان رسمشون کردم.
حالا می خوام توی محور مختصات اول علاوه بر نمودار اصلی، یه نمودار دیگه (فرعی) هم رسم کنم. و ضمنا نمودار جدید (فرعی) که می خوام اضافه کنم بر خلاف دو نمودار اصلی، یه نمودار خط درجه اول با فرمولش هست.
چی کار باید بکنم الان؟
کدی که نوشتم، بدون اضافه کردن اون نمودار فرعی اینه
ممنون
سلام.
برای رسم چند منحنی در یک شکل (یا در یکی از زیرشکل های شکل کلی ساخته شده با subplot)، باید از دستور hold on استفاده کنید.
در واقع، زیرشکل هایی که توسط subplot ساخته شده اند، جداگانه هستند و با استفاده از دستورات سفارشی، می توانید تمامی ویژگی های آنها را تغییر بدهید.
با توجه به سوال شما، کلید زیر نوشته شد :
خدمتتون عارض بشم میخام توزیع دما برای حالت پایا وsteadyدر یک ورقه دو بعدی که دمای چپ و راستش مشخصه و بالا و پایینش عایقه و همچنین یک سوراخ در وسط ِ ورقه هست ک سوراخ هم از قضا عایقه.من کد متلب برای حالت بدون سوراخ رو نوشتم و توزیع دمایی هم درسته حالا میخام شرط سوراخ و مهم تر عایق بودن سوراخ رو اعمال و به ملب وارد کنم و نمیتونم. در واقع تو تفاضل محدود در حالتی که یک جداری یا یک خطی از نقاط عایقع باید بگیم دمای هرنود با نودِ قبلیش برابره و خوب برای نود بالا و پایین ساده س ولی برای تعریف عایق بودن دایره چون دایره بصورت مختصات دایره ای تعریف میشه و دماهای بقیه نقاط صفحه در مختصات دکارتی تعریف میشه یجور نداخل میخوره.تو کتاب محاسبات عددی چپرا هم یه متلب مشابه پیدا کردم ولی نتونستم خوب درکش کنم.حالا از شما کمک میخام که کمکم کنید چجوری میتونم شرط عایق بودن دایره رو به متلب اعمال کنم….خدا خیرتون بده.ممنون میشم کمکم کنید
دوتا هم تصویر ضمیمه کردم که یکیش مربوط به کتاب چپرا برای مقاطع دایره ای در حالتیه که مختصات دکارتی و قطبی ترکیب شدن و مش بندی با دکارتیه و دمای دایره که قطبیه میخاد بدست بیاد
سلام من چند تا نمودار دارم که هر کدوم رو در برنامه جداگانه اجرا کردم و جواب دادند. حالا اگه بخوام این نمودار هارو که مثلا 9 تا هستند در یک پنجره ببینم چه دستوری باید استفاده کنم؟؟؟ لطفا راهنماییم کنید
سلام.
اگر قصد دارید که شکل ها در کنار یکدیگر نمایش داده شوند، باید از دستور subplot در متلب (MATLAB) استفاده کنید (همین کلید).
اما چنانچه می خواهید که چند شکل بر روی هم نمایش داده شوند (شکل های قبل را هم داشته باشیم)، باید دستور hold on را به کار ببرید ().
اگر چند برنامه جداگانه را به کار می برید و می خواهید بعد از اجرای تک تک آنها، همگی در یک شکل نمایش داده شوند (بر اساس دستور hold on)، باید دستور hold on را در اولین انها که اجرا می کنید، بنویسید (در ابتدای کدهای آن) و همچنین چک کنید که در کل کدها، دستور hold off وجود نداشته باشد. همچنین باید چک کنید که دستورات close یا close all در کل کدها وجود نداشته باشد (تمامی برنامه ها را چک کنید)، زیرا دستور close ، برای بستن پنجره های شکل نمایش داده شده می باشد (می توانید تنها یک بار دستور close all را در ابتدای اولین برنامه بنویسید).
به عنوان مثال، فرض کنید برنامه اول ما به صورت زیر باشد :
و برنامه دوم به صورت زیر :
با اجرای به ترتیب دو برنامه متلب بالا، یک شکل خواهیم داشت که دو منحنی مربوط به دو برنامه مورد نظر، در آن نمایش داده شده.
سلام.تو برنامه یRچطور دونمودار جداگانه رو در یک صفحه نمایش بدیم
سلااام
چجوری میتونم دوتا فایل .jpg بصورت همزمان نمایش بدم؟؟؟؟
سلام.
با فرض اینکه دو فایل عکس با فرمت jpg با نام های kelidestan_image_1.jpg و kelidestan_image_2.jpg در پوشه فعلی (Current Folder) داشته باشید، آنگاه برای نمایش همزمان آن دو عکس (نمایش در کنار هم)، می توانید کد متلب (MATLAB) زیر را اجرا نمایید :
سلام لطفا بگید برای اینکه کدی که نوشتم نتایجش به صورت جدول وار نمایش داده بشه باید چکار کنم. هرچی دستور array2tableو... زدم نتونستم. فرم درستش به چه شکله؟
سلام الان تو این مثال اجرا کردنی تو قسمت command window همه تابع هارو وارد می کنید؟
منظورم اینجوری
[x ,x^2 ,x^3]
و مثلا n=20
؟؟؟؟
با عرض سلام اگر بخواهیم به ساب پلات اسم بدهیم باید چیکار کنیم؟ مثلا بالای همه نمودار ها بنویسد سابپلات 1 بعد زیرش نمودار ها ترسیم بشه
سلام
من اولین باره برای یه سایت کامنت میزارم
فقط خواستم بگم خیلییی خوب توضیحش دادید و من دستور subplot رو کامل متوجه شدم