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带蓝色的灰度
JetHsv的一种变形,以蓝色开始,以蓝色结束
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(%)');

dbar

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

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值