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' |
![]() |
'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格式文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)