مفهوم طرح رنگ آمیزی (Colormap) (انتخاب رنگ های متناظر با اعداد، برای به کار رفتن در هنگام رسم شکل) و نحوه استفاده از یک طرح رنگ آمیزی (Colormap) در هنگام رسم شکل، با دستور colormap ، در متلب (MATLAB)
در هنگام رسم کردن برخی از شکل ها در متلب (MATLAB)، نیاز داریم که چندین رنگ (Color) متفاوت (یا در واقع، بازه ای از رنگ ها) در شکل به کار روند. همچنین معمولا سعی می شود که رنگ هایی (Color) (یا بازه ای از رنگ ها) که برای به کار رفتن در یک شکل انتخاب می شوند، متناسب باشند.
علاوه بر این، افراد مختلف، دارای سلیقه های متفاوت برای به کار بردن رنگ ها (Color) در شکل مورد نظرشان هستند. اما اینکه هر شخص مجبور شود که خودش چند رنگ مختلف (یا بازه ای از رنگ ها) را برای شکل مورد نظرش انتخاب کند، کمی سخت است و بهتر است که قبلا چندین مجموعه از رنگ ها (Color) تعریف شده باشد (هر مجموعه، شامل تعدادی رنگ متناسب با هم، یا بازه ای از رنگ ها) و وی تنها از بین مجموعه های مختلف رنگ ها (Color)، یکی را برای رسم شکل مورد نظرش، اننتخاب نماید.
وقتی می گوییم که چند رنگ (Color) متفاوت (یا در واقع، بازه ای از رنگ ها) برای رسم شکل به کار می روند، منظورمان این است که چون در نرم افزار متلب (MATLAB)، اطلاعات خود را به صورت اعداد داریم، هنگام رسم یک شکل بر اساس آن اعداد (شکل هایی که از رنگ ها برای متمایز کردن مقادیر عددی استفاده می کنند)، هر مقدار عددی، متناظر با یک رنگ (Color) در نظر گرفته می شود (بر اساس انتخاب رنگ ها (Color)).
در واقع بازه ای از اعداد را متناظر با بازه ای از رنگ ها (Color) در نظر خواهیم گرفت و یک جور نگاشت (Mapping) از اعداد به رنگ ها (Color) خواهیم داشت (تناظر یک به یک بین اعداد و رنگ ها). به همین دلیل، کلمه انگلیسی Colormap برای آن انتخاب شده است (ترکیب دو کلمه رنگ (Color) و نگاشت کردن (Map)).
بنابراین نرم افزار متلب (MATLAB)، یک سری مجموعه رنگ (انتخابی از چند رنگ، یا بازه ای از رنگ ها) را که طرح های رنگ آمیزی (Colormap) نامیده می شوند، تعریف کرده است که ما می توانیم هر یک از این طرح های رنگ آمیزی (Colormap) را برای رسم شکل مورد نظرمان، انتخاب کنیم.
در شکل زیر، طرح های رنگ آمیزی (Colormap) از پیش تعریف شده در متلب (MATLAB) را نمایش داده ایم ( کلید شماره 792 ) :
برای استفاده از یک طرح رنگ آمیزی (Colormap) برای رسم یک شکل، می توانیم نام آن طرح رنگ آمیزی (Colormap) را در پرانتز دستور colormap ذکر نماییم. به عنوان مثال، اگر طرح رنگ آمیزی (Colormap) با نام hsv را انتخاب کرده باشیم، باید دستور colormap را به صورت زیر به کار ببریم :
و یا به صورت زیر (نتیجه یکسان است) :
امکان تعریف طرح های رنگ آمیزی (Colormap) دلخواه توسط خود ما نیز وجود دارد ( کلید شماره 793 )، اما معمولا طرح های رنگ آمیزی (Colormap) که خود نرم افزار متلب (MATLAB) تعریف کرده است، مناسب و کافی می باشند.
دستور colorbar در متلب (MATLAB)، برای نمایش مقادیر متناظر با رنگ های (Color) به کار رفته در رسم شکل، در کنار شکل، به کار می رود، بنابراین با استفاده از آن می توانید مقدار عددی متناظر با هر رنگ (Color) به کار رفته در شکل را متوجه شوید ( کلید شماره 2798 ).
اگر برای رسم شکل، هیچ طرح رنگ آمیزی (Colormap) مشخص نکنید، آنگاه نرم افزار متلب (MATLAB)، طرح رنگ آمیزی (Colormap) پیش فرض را به کار می برد.
به مثال زیر توجه کنید :
یک ماتریس شامل مقادیر عددی مختلف را تعریف کرده و سپس آن را با یک طرح رنگ آمیزی (Colormap) که انتخاب کرده ایم (طرح رنگ آمیزی با نام hsv)، رسم می کنیم :
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
دستور imagesc در متلب (MATLAB)، برای رسم مقادیر ذخیره شده در یک ماتریس، به صورت یک شکل رنگی (یک تصویر)، استفاده می شود ( کلید شماره 20 ).
دستور colorbar در متلب (MATLAB)، برای نمایش مقادیر متناظر با رنگ های (Color) به کار رفته در رسم شکل، در کنار شکل، به کار می رود ( کلید شماره 2798 ).
نتیجه :
همان مثال قبل را این بار با طرح های رنگ آمیزی (Colormap) مختلف تکرار می کنیم تا بتوانید تفاوت ظاهری آنها را مشاهده نمایید (یک ماتریس شامل مقادیر عددی مختلف را تعریف کرده و سپس آن را در چندین پنجره شکل جداگانه، با طرح های رنگ آمیزی (Colormap) مختلف، رسم می کنیم) :
نام طرح های رنگ آمیزی (Colormap) را در یک آرایه رشته ای (String Array) با نام kelidestan_colormaps ذخیره کرده ایم و سپس در یک حلقه for ، در هر گام حلقه، یکی از طرح های رنگ آمیزی (Colormap) را برای رسم شکل به کار می بریم ( کلید شماره 30 ).
دستور length را برای به دست آوردن تعداد عناصر آرایه رشته ای (String Array) به کار برده ایم تا تعداد گام حلقه for را برابر با آن قرار دهیم.
دستور figure را در هر گام از حلقه به کار برده ایم تا یک پنجره شکل جدید باز شود و بنابراین شکل جدید، در آن رسم گردد (در غیر این صورت، شکل های جدید در همان اولین پنجره شکل که باز می شود، نمایش داده می شوند و بنابراین تنها یک شکل را در پایان اجرای کدهای متلب (MATLAB) مشاهده خواهیم کرد، در صورتی که باید به تعداد طرح های رنگ آمیزی (Colormap)، پنجره شکل داشته باشیم).
دستور title در متلب (MATLAB)، برای نمایش یک متن به صورت عنوان در بالای شکل، استفاده می شود (تا بدانیم که هر شکل، مربوط به کدام طرح رنگ آمیزی (Colormap) است).
نتیجه :
مطالب بسیار عالی و مفید هستند متشکرم
اگر بخواهیم در نمودار میله ای (bar) هر یک از خطوط میله ای رنگ متفاوت از یکدیگر داشته باشند آیا colormap تفاوت رنگ در چند bar plot میتواند ایجاد کند یا باید از دستور دیگری استفاده کنیم. بسیار ممنونم
سلام.
می توانید رنگ های مورد نظرتان را به صورت دقیق، بر اساس تعریف رنگ RGB ، تعریف نمایید.
به عنوان مثال، کد متلب (MATLAB) زیر را می نویسیم () :