matlab怎么指定繪圖顏色? matlab自定義繪圖顏色的技巧
MATLAB使用一組默認顏色創(chuàng)建繪圖。使用默認顏色創(chuàng)建的不同繪圖將呈現(xiàn)清晰一致的外觀。您也可以按需求自定義顏色。許多繪圖函數(shù)都有用于自定義顏色的輸入參量,如c或colorspec。這些函數(shù)返回的對象通常具有控制顏色屬性。參量和屬性的名稱可以不同,但它們接受的值通常遵循一種通用模式。一旦熟悉了該模式,您就可以使用它來修改各種繪圖。
以下示例使用bar和scatter函數(shù)來演示自定義顏色整體方法。有關特定繪圖函數(shù)的有效顏色值的完整列表,請參考該函數(shù)的文檔。
1.顏色值的類型
有以下幾種顏色值:
- 顏色名稱或短名稱- 指定顏色名稱,例如
"red"或"green"。短名稱從顏色名稱中指定字母,例如"r"或"g"。 - RGB 三元組- 通過指定一個三元素行向量來創(chuàng)建自定義顏色,該向量的元素是顏色中紅、綠、藍分量的強度。強度必須處于范圍
[0,1]中。例如,您可以用[1 0.5 0.8]來指定粉紅色。 - 控制顏色的某些函數(shù)參量并不接受 RGB 三元組,但控制顏色對象屬性通常接受。
- 十六進制顏色代碼- 通過以下方式創(chuàng)建一個自定義顏色:指定一個字符串或字符向量,以井號 (
#) 開頭,后跟三個或六個十六進制數(shù)字,范圍可以是0到F。這些值不區(qū)分大小寫。因此,顏色代碼"#FF8800"、"#ff8800"、"#F80"和"#f80"都指定相同的橙色色調。 - 某些控制顏色的函數(shù)參量不接受十六進制顏色代碼,但您可以使用與對象屬性對應的名稱-值參量來指定十六進制顏色代碼。例如,
scatter(x,y,sz,"MarkerFaceColor","#FF8800")將散點圖中的標記顏色設置為橙色。
下表列出了所有有效的顏色名稱和短名稱,以及對應的 RGB 三元組和十六進制顏色代碼。
| 顏色名稱 | 短名稱 | RGB 三元組 | 十六進制顏色代碼 | 外觀 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
以下是 MATLAB 在許多類型的繪圖中使用的默認顏色的 RGB 三元組和十六進制顏色代碼。這些顏色沒有與之相關聯(lián)名稱。
| RGB 三元組 | 十六進制顏色代碼 | 外觀 |
|---|---|---|
[0 0.4470 0.7410] | "#0072BD" |
|
[0.8500 0.3250 0.0980] | "#D95319" |
|
[0.9290 0.6940 0.1250] | "#EDB120" |
|
[0.4940 0.1840 0.5560] | "#7E2F8E" |
|
[0.4660 0.6740 0.1880] | "#77AC30" |
|
[0.3010 0.7450 0.9330] | "#4DBEEE" |
|
[0.6350 0.0780 0.1840] | "#A2142F" |
|
2.指定條形圖的顏色
通過調用bar函數(shù)并將可選的color參量指定為 "red",創(chuàng)建一個紅色條形圖。以b形式返回條形對象,以便以后可以自定義圖的其他方面。
b = bar(1:10,"red");

現(xiàn)在,通過將FaceColor和EdgeColor屬性設置為十六進制顏色代碼 "#80B3FF",將條形圖填充顏色和輪廓顏色更改為淺藍色。
在 R2019a 之前,指定 RGB 三元組,而不是十六進制顏色代碼。例如,b.FaceColor=[0.5 0.7 1]。
b.FaceColor = "#80B3FF"; b.EdgeColor = "#80B3FF";

3.指定散點圖中的標記顏色
創(chuàng)建隨機數(shù)散點圖。將標記大小指定為75磅,并使用名稱-值參量指定標記輪廓和填充顏色。MarkerEdgeColor屬性控制輪廓顏色,而MarkerFaceColor屬性控制填充顏色。
x = rand(1,100);
y = rand(1,100);
scatter(x,y,75,"MarkerEdgeColor","b", ...
"MarkerFaceColor",[0 0.7 0.7])
4.指定一系列繪圖中的顏色
創(chuàng)建一系列繪圖有兩種方式:
多次調用一個繪圖函數(shù),并使用
hold函數(shù)來保留坐標區(qū)的內容。將一個包含多個數(shù)據序列的矩陣傳遞給繪圖函數(shù)。
plot函數(shù)始終接受矩陣輸入,許多其他繪圖函數(shù)也支持矩陣輸入。
要為上述方法中的任一方法指定顏色,請使用一個輸出參量調用所需的繪圖函數(shù),以便可以訪問各個繪圖對象。然后在要更改的繪圖對象上設置屬性。
例如,創(chuàng)建一個包含 100 磅的填充標記的散點圖。使用輸出參量s1調用scatter函數(shù)。調用hold函數(shù)以保留坐標區(qū)的內容,然后使用輸出參量s2和s3再調用兩次scatter函數(shù)。變量s1、s2和s3是Scatter對象。
figure x = 1:5; s1 = scatter(x,[6 3 9 10 7],100,"filled"); hold on s2 = scatter(x,[16 13 19 20 17],100,"filled"); s3 = scatter(x,[26 23 29 33 27],100,"filled"); hold off

將第二個Scatter對象的顏色更改為紫色。
s2.MarkerFaceColor = [0.7 0 1];

scatter函數(shù)還支持矩陣輸入(從 R2021a 開始提供),因此您可以通過傳遞矩陣并返回對象向量來創(chuàng)建相同的繪圖。
figure x = 1:5; y = [6 3 9 10 7; 16 13 19 20 17; 26 23 29 33 27]; s = scatter(x,y,100,"filled");

在這種情況下,要更改第二個數(shù)據序列的顏色,請通過對s進行索引來訪問第二個Scatter對象。
s(2).MarkerFaceColor = [0.7 0 1];

推薦閱讀:Matlab常用繪圖顏色搭配有哪些
相關文章

Matlab常用繪圖顏色搭配有哪些? matlab繪圖顏色代碼整理匯總
在MATLAB中繪圖時,選擇合適的配色方案對于數(shù)據的可視化至關重要,整理了一些超實用的MATLAB繪圖顏色,它們可以提升圖表的吸引力2025-01-13
MATLAB中的條件語句與循環(huán)結構怎么使用? 條件語句與循環(huán)結構詳解
MATLAB提供了多種條件語句和循環(huán)結構,下面是對MATLAB中條件語句和循環(huán)結構的詳細解釋,詳細如下2025-01-11
在MATLAB中,主要有if、elseif、else和switch語句,我們通過示例代碼幫助讀者更好地理解if、elseif、else的概念2025-01-11
matlab怎么控制坐標軸范圍? Matlab中指定坐標軸范圍的教程
在matlab中,設置坐標軸范圍是通過修改圖形對象屬性來實現(xiàn)的,該怎么指定坐標軸范圍呢?詳細請看下文介紹2025-01-11
線性方程組是數(shù)學中一類重要的問題,廣泛應用于科學、工程和經濟等領域,在Matlab中,我們可以利用內置的函數(shù)和工具箱來解決線性方程組,本文將介紹如何使用Matlab求解線性2025-01-11
matlab怎么畫函數(shù)圖像? MATLAB繪制函數(shù)圖像的實例教程
有時候我們在使用matlab的時候,想畫函數(shù)圖像,怎么畫呢,?繪制方法很簡單,下面來分享一下2025-01-11
MATLAB如何調用function? 一文看懂functionfunction函數(shù)的試用技巧
MATLAB的functions函數(shù),用于查詢和調試函數(shù)句柄信息,該怎么了解并使用這個函數(shù)呢?詳細請看下文介紹2025-01-10
matlab提示內存不足怎么辦? MATLAB內存不足及MAT文件版本過低解決方案
Matlab作為一款科學計算軟件,其內存管理變得尤為重要,當遇到“內存不足”的錯誤提示時,許多用戶可能會感到困擾,下面我們就來看看詳細解決辦法2025-01-10
很多小伙伴還不了解matlab怎么生成圖像,其實很簡單的我們只要準備好的圖像復制到matlab的工作目錄中,然后入返回指令[data=imread在主界面將圖像轉換為數(shù)據就可以了,詳2024-01-20
matlab怎么刪除某一行錯誤代碼 matlab把錯誤行刪掉的技巧
用戶在使用matlab時多打一行代碼或者出現(xiàn)一行錯誤的代碼要怎么刪除,其實只要選中要刪除的代碼直接注釋或者delete刪除即可,詳細請看下文介紹2024-01-20




















