Matlab画图

一、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' img
'green' 'g' [0 1 0] '#00FF00' img
'blue' 'b' [0 0 1] '#0000FF' img
'cyan' 'c' [0 1 1] '#00FFFF' img
'magenta' 'm' [1 0 1] '#FF00FF' img
'yellow' 'y' [1 1 0] '#FFFF00' img
'black' 'k' [0 0 0] '#000000' img
'white' 'w' [1 1 1] '#FFFFFF' img
RGB 三元组 十六进制颜色代码 外观
[0 0.4470 0.7410] '#0072BD' img
[0.8500 0.3250 0.0980] '#D95319' img
[0.9290 0.6940 0.1250] '#EDB120' img
[0.4940 0.1840 0.5560] '#7E2F8E' img
[0.4660 0.6740 0.1880] '#77AC30' img
[0.3010 0.7450 0.9330] '#4DBEEE' img
[0.6350 0.0780 0.1840] '#A2142F' img

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');

Matlab画图_第1张图片

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(%)');

Matlab画图_第2张图片

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];

Matlab画图_第3张图片

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格式文件

你可能感兴趣的:(Matlab,matlab)