一、matlab線條符號、標記符、顏色
| 線型 | 說明 |
|---|---|
| - | 實線(默認) |
| -- | 雙划線 |
| : | 虛線 |
| :. | 點划線 |
| 標記符 | 說明 |
|---|---|
| + | 加號符 |
| o | 空心圓 |
| * | 星號 |
| . | 實心圓 |
| x | 叉號符 |
| s(square) | 正方形 |
| d | 菱形 |
| ^ | 上三角形 |
| v | 下三角形 |
| > | 右三角形 |
| < | 左三角形 |
| p(pentagram) | 五角星 |
| h(hexagram) | 六邊形 |
| pentagram | 五角形 |
| hexagram | 六角形 |
| 顏色 | 說明 |
|---|---|
| r | 紅色 |
| g | 綠色 |
| b | 藍色 |
| c | 青綠色 |
| m | 洋紅色 |
| y | 黃色 |
| k | 黑色 |
| w | 白色 |
二、matlab調色板
1、常用顏色的RGB值
RGB 三元組是包含三個元素的行向量,其元素分別指定顏色中紅、綠、藍分量的強度。強度值必須位於 [0,1] 范圍內,例如 [0.4 0.6 0.7]。
⚠️注意: 如果想手動設置顏色,可以根據RGB來計算對應的行向量
如: RGB 顏色(218,31,24) 總和為 sum = 218 + 31 + 24
對應三元組的 r = 218 / sum, g = 31/ sum, b=24/sum
得到 [0.798 0.113 0.087]
| 顏色 | RGB |
|---|---|
| 天藍 | [0.67 0 1] |
| 橘黃 | [1 0.5 0] |
| 深紅 | [0.5 0 0] |
| 灰 | [0.5 0.5 0.5] |
⚠️注意:MATLAB中調色板色彩強度[0,1],0代表最暗,1代表最亮。
| 顏色名稱 | 短名稱 | 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' |
![]() |
| 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、產生標准調色板的函數
| 函數名 | 調色板 |
|---|---|
| Hsv | 色彩飽和度,以紅色開始,並以紅色結束 |
| Hot | 黑色-紅色-黃色-白色 |
| Cool | 青藍和洋紅的色度 |
| Pink | 粉紅的色度 |
| Gray | 線型灰度 |
| Bone | 帶藍色的灰度 |
| Jet | Hsv的一種變形,以藍色開始,以藍色結束 |
| Copper | 線型銅色度 |
| Prim | 三棱鏡,交替為紅、橘黃、黃、綠和天藍 |
| Flag | 交替為紅、白、藍和黑 |
缺省情況下,調用上述函數灰產生一個64×3的調色板,用戶也可指定調色板大小。
三、matlab線條
Matlab畫的線較多時,線的顏色的選取對圖的美觀是有很大的影響的。 Jonathan C. Lansey
Matlab-code提供了在不同線上畫不同顏色簡單易用的函數。
Examples demonstrating thecolors.
% LINECOLORS
N=6;
X =linspace(0,pi*3,1000);
Y =bsxfun(@(x,n)sin(x+2*n*pi/N), X.',1:N);
C =linspecer(N);
axes('NextPlot','replacechildren','ColorOrder',C);
plot(X,Y,'linewidth',5)
ylim([-1.1 1.1]);
% SIMPLER LINE COLOREXAMPLE
N = 6; X =linspace(0,pi*3,1000);
C =linspecer(N)
holdoff;
forii=1:N
Y =sin(X+2*ii*pi/N);
plot(X,Y,'color',C(ii,:),'linewidth',3);
hold on;
end
% COLORMAPEXAMPLE
A =rand(15);
figure; imagesc(A); % defaultcolormap
figure; imagesc(A);colormap(linspecer); % linspecer colormap
注:C即為生成的RGB顏色(非常好用)
【用法】
grid 打開網格線 -- 虛線
hold on 命令用於在已畫好的圖形上添加新的圖形
1、例子1
x=0:0.001:10; % 0到10的1000個點(每隔0.001畫一個點)的x座標
y=sin(x); % 對應的y座標
plot(x,y); % 繪圖
注:matlab畫圖實際上就是描點連線,因此如果點取得不密,畫出來就成了折線圖,請試驗之
2 、例子2
Y=sin(10*x);
plot(x,y,'r:',x,Y,'b') % 同時畫兩個函數
3 、若要改變顏色,在座標對后面加上相關字串即可
x=0:0.01:10;
plot(x,sin(x),'r')
4 、若要同時改變顏色及圖線型態(Line style),也是在坐標對后面加上相關字串即可
plot(x,sin(x),'r*')
5、用axis([xmin,xmax,ymin,ymax])函數來調整圖軸的范圍
axis([0,6,-1.5,1])
6 、MATLAB也可對圖形加上各種注解與處理:(見上表)
xlabel('x軸'); % x軸注解
ylabel('y軸'); % y軸注解
title('余弦函數'); % 圖形標題
legend('y = cos(x)'); % 圖形注解
gtext('y = cos(x)'); % 圖形注解 ,用鼠標定位注解位置
grid on; % 顯示格線
7、畫橢圓
a = [0:pi/50:2*pi]'; %角度
X = cos(a)*3; %參數方程
Y = sin(a)*2;
plot(X,Y);
xlabel('x'), ylabel('y');
title('橢圓')
8 、繪制函數 在0 ≤ x ≤ 1時的曲線。
x=0:0.1:1
y=x.*exp(-x) %為什么用點運算?若不用會怎樣
plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')
9 、畫出衰減振盪曲線 與它的包絡線 及 。t 的取值范圍是[0, 4π] 。
t=0:pi/50:4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,'-r',t,y0,':b',t,-y0,':b') % -r表示紅色實線,:b表示藍色點線,看上表
grid
10 、在同一個畫面上建立幾個坐標系, 用subplot(m,n,p)命令;把一個畫面分成m×n個圖形區域, p代表當前的區域號,在每個區域中分別畫一個圖
x=linspace(0,2*pi,30); y=sin(x); z=cos(x);
u=2*sin(x).*cos(x); v=sin(x)./cos(x);
subplot(2,2,1),plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
subplot(2,2,2),plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
subplot(2,2,3),plot(x,u),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
subplot(2,2,4),plot(x,v),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')
11、柱狀圖
單柱:每個柱一個顏色
% [value nan nan nan] 數組長度代表柱子的個數,value表示當前位置繪制柱子
bar([3.2 nan nan nan], 'facecolor', [0.855 0.122 0.094] , 'BarWidth',0.4)
hold on
bar([nan 7.89 nan nan], 'facecolor',[0.980 0.427 0.114], 'BarWidth',0.4)
bar([nan nan 14.8 nan], 'facecolor',[0.0275 0.502 0.811], 'BarWidth',0.4)
bar([nan nan nan 16.8], 'facecolor',[0.957 0.478 0.459], 'BarWidth',0.4)
% 設置x軸刻度的標簽
set(gca,'XTickLabel',{'A','B','C', 'D'})
% 設置字體大小
set(gca,'FontSize',14)
ylabel('Average Localization Error (m)');
xlabel('Algorithms');

y=[37.5 21.2;19.3, 3; 15.4, 3.6;];
b=bar(y);
% 2016r
set(b(1),'FaceColor',[0.0275 0.501 0.812])
set(b(2),'FaceColor',[0.980 0.427 0.114])
% 2017r
% b(2).FaceColor = '#D2F9A7';
% 設置x軸刻度的標簽
set(gca,'XTickLabel',{'A','B','C'})
% 設置字體大小
set(gca,'FontSize',14)
% 圖例
legend('man','woman');
xlabel('Methods');
ylabel('User Participation(%)');

12、折線圖
%x軸上的數據,第一個值代表數據開始,第二個值代表間隔,第三個值代表終止
x=1:1:4;
%a數據y值
a=[7.93, 8.67, 8.55, 9.08 ]
%b數據y值
b=[11.54, 9.39, 9.82, 11.78]
%c數據y值
c=[24.11, 25.82, 29.96, 27.56]
plot(x,a,'-*b', x,b,'-or', x,c,'-xg'); %線性,顏色,標記
% axis([0,6,0,700]) %確定x軸與y軸框圖大小
set(gca,'XTick',[1:1:7]) %x軸范圍1-6,間隔1
% set(gca,'YTick',[0:100:700]) %y軸范圍0-700,間隔100
%右上角標注
legend('DNN','KNN', 'SVM');
set(gca,'XTickLabel',{'0','1','2','3'})
xlabel('Floor') %x軸坐標描述
%y軸坐標描述
ylabel('Average Localization Error(m)')
13、餅圖
% x = [25, 46]
x = [18, 50, 3]
pie3(x)
legend('bachelor','postgraduate', 'doctor')
14、累計分布圖 CDF
% 注:原始數據太多,為了方便展示,此處僅放置部分數據
% original
original = [1.33, 2.13, 1.92, 1.9, 1.89, 2.34, 2.48, 2.64, 2.11, 2.66];
% random
rand = [3.16, 3.72, 2.37, 3.05, 2.72, 2.53, 2.04, 2.33, 1.32, 1.87];
% internal 2
int2 = [1.54, 2.43, 2.04, 1.87, 2.21, 2.44, 2.9, 2.9, 2.59, 2.74];
% mix2
mix2 = [4.72, 5.47, 6.05, 5.96, 5.29, 4.51, 4.15, 4.39, 4.21, 4.21];
ho= cdfplot(original);
set(ho,'color','r','Linewidth',1);
hold on;
hrand= cdfplot(rand);
set(hrand,'color','g','Linewidth',1);
hold on;
hr2= cdfplot(int2);
set(hr2,'color','b','Linewidth',1);
hold on;
hold on;
hm2= cdfplot(mix2);
set(hm2,'color','m','Linewidth',1);
hold on;
legend('Original','Random', 'Interval-2','Mix-2');
xlabel('Localization Errors(m)')
%y軸坐標描述
ylabel('CDF')
15.折線圖和條形圖的雙軸圖
參考:吃小羊 作圖實例13
使用創建具有兩個y軸的圖表yyaxis。圖形函數以圖表的活動面為目標。使用控制活動側yyaxis。使用左y軸繪制條形圖。使用右y軸繪制折線圖。將條形圖系列對象和圖表線對象分配給變量。
days = 0:5:35;
temp = [29 23 27 25 20 23 23 17];
conc = [515 420 370 250 135 120 60 20];
%控制左縱軸
yyaxis left
%繪柱狀圖,賦值圖形句柄給b
b = bar(days,temp);
% 2016r
set(b(1),'FaceColor',[0.0275 0.501 0.812])
% 2017r
% b(2).FaceColor = '#D2F9A7';
%控制右縱軸
yyaxis right
%繪折線圖,賦值圖形句柄給p
p = plot(days,conc);
title('Temperature and Concentration Data')
xlabel('Length')
%控制左縱軸
yyaxis left
ylabel('Average Localization Error(m)')
%控制右縱軸
yyaxis right
ylabel('Running Time')
%設置線寬
p.LineWidth = 3;
%設置柱面顏色
b.FaceColor = [ 0 0.447 0.741];

16.多圖繪制
% 需要matlab R2019b
x = linspace(0,30);
y1 = sin(x);
y2 = sin(x/2);
y3 = sin(x/3);
y4 = sin(x/4);
% Create plots
t = tiledlayout(2,2); % Requires R2019b or later %獲得圖形窗口對象
nexttile
plot(x,y1)
nexttile
plot(x,y2)
nexttile
plot(x,y3)
nexttile
plot(x,y4)
matlab 2016
rows = 2;
cols = 2;
subplot(rows,cols,1)
x = linspace(0,10);
y1 = sin(x);
plot(x,y1)
title('Subplot 1: sin(x)')
subplot(rows,cols,2)
y2 = sin(2*x);
plot(x,y2)
title('Subplot 2: sin(2x)')
subplot(rows,cols,3)
y3 = sin(4*x);
plot(x,y3)
title('Subplot 3: sin(4x)')
subplot(rows,cols,4)
y4 = sin(8*x);
plot(x,y4)
title('Subplot 4: sin(8x)')
四、結果圖編輯
如果想根據需求修改線條的顏色、文字大小
可以通過 編輯 →圖形屬性 來對圖中的元素進行調整
五、matlab導出
具體設置如下:
文件→導出設置
渲染→分辨率→設置600
字體→自定義粗細→選擇粗
線條→使用固定線寬 2 磅
→應用於圖形→
1.eps格式圖片
適合在latex的小論文
導出→保存eps格式文件
2.emf格式圖片
能夠在Word高清顯示
導出→保存emf格式文件















