Matlab画图小指南
我发现隔一段时间不碰MATLAB,等到需要的时候来用,简直觉得寸步难行,很多命令都忘记了,因此在此小小记录一下关于在MATLAB中画图的方方面面(#^.^#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | plot (x,y, 'LineWidth' ,1.5); %线条粗一点 %绘制散点图 sz是尺寸 scatter (x,y,sz, 'MarkerEdgeColor' ,[0 .5 .5],... 'MarkerFaceColor' ,[0 .7 .7],... 'LineWidth' ,1.5) %标题和轴标题 坐标 title ( '*****' , 'FontSize' ,18, 'FontWeight' , 'bold' ) %标题加粗 字号 xlabel ( '*****' , 'FontAngle' , 'italic' ); %可以是斜体 ylabel ( '*****' , 'FontAngle' , 'italic' ); axis ([400,2500,0,0.6]); %控制范围 set ( gca , 'YTick' ,[0:0.1:0.6]); %x轴范围 ,间隔0.1 set ( gca , 'XTick' ,[0:500:2500]) ; %y轴范围 ,间隔500 set ( gca , 'XTick' , [], 'YTick' , [] ); %不想要刻度线的时候 set ( gca , 'xticklabel' ,[]) %不想要刻度标签的时候 set ( gca , 'yticklabel' ,[]) set ( gca , 'FontName' , 'Times New Roman' , 'FontSize' ,12); %坐标轴的刻度值字体好看点 set ( gca , 'linewidth' ,1.5) ; %图的边框要好看 set ( gcf , 'color' ,[1,1,1]) %背景变白 colorbar %加色度条 colormap gray %改变色彩模式 %添加文本标注 text (0.011,0.58, '(d)2016-06-15' , 'FontName' , 'Times New Roman' , 'FontSize' ,15) ; text (0.014,0.55,[ 'Y=' , num2str (p(1)), 'X+' , num2str (p(2))], 'FontName' , 'Times New Roman' , 'FontSize' ,11, 'FontAngle' , 'italic' ) ; %num2str后才能显示 %图例 legend ([p1 p2],{ 'Fit line' , '1:1 Line' }, 'FontName' , 'Times New Roman' , 'Location' , 'southeast' ); %这里p1 p2分别代表两条不同的plot画出来的线 此处用到了对象 %输出图形 print ( 'Figure1' , '-dpdf' , '-r300' ); %输出pdf到当前文件夹,简单线图用pdf或eps(-deps),AI打开编辑 print ( 'Figure2' , '-djpeg' , '-r600' ); %输出jpg, 复杂、数据量大的彩图用jpg,600ppi saveas ( 'Figure1' ,[ 'D:\' Name],' pdf') %保存图形到当前目录 print ( 'fileformat' , '-r+resolution' , 'filename' ) print ( '-djpeg' , '-r600' , 'bon' ) print ( '-djpeg' , '-r900' , 'ALA&FVC' ) |
name:value 参数设置:
DatetimeTickFormat 的值 | 示例 |
---|---|
'yyyy-MM-dd' |
2014-04-19 |
'dd/MM/yyyy' |
19/04/2014 |
'dd.MM.yyyy' |
19.04.2014 |
'yyyy年 MM月 dd日' |
2014年 04月 19日 |
'MMMM d, yyyy' |
April 19, 2014 |
'eeee, MMMM d, yyyy HH:mm:ss' |
Saturday, April 19, 2014 21:41:06 |
'MMMM d, yyyy HH:mm:ss Z' |
April 19, 2014 21:41:06 -0400 |
DurationTickFormat 的值 | 说明 |
---|---|
'y' |
精确定长年的数目。固定长度的一年等于 365.2425 天。 |
'd' |
精确定长天的数目。固定长度的一天等于 24 小时。 |
'h' |
小时数 |
'm' |
分钟数 |
's' |
秒数 |
1 2 3 4 5 6 7 | #加上线性拟合 hold on p = polyfit (x,y,1); %线性拟合 m=0:0.01:0.6; x1= linspace ( min (x), max (x)); y1= polyval (p,x1); p1= plot (x1,y1, '-k' , 'linewidth' ,1.2); |
面向对象式画图
所谓面向对象式的绘图,是仿照生活实际而来的,有别于过程式的绘图方式。
- 创建figure对象。摊开空白画布
- 创建axes对象。画布上选一个绘制区域
- 创建line对象。在绘图区画图·
- 创建legend对象。
- 保存图像
各种对象都有不同的属性,绘制精致的图形本质上是学会设置各种属性
Tips:
- 请提前设置好绘图的大小(基于你论文排版需要),所有字体样式。
- 输出pdf/eps/jpg,用上述的print输出,然后用AI打开文件编辑修改,用AI导出为/存储为...
- 将visio/word文档转换为pdf,请使用 Acrobat PDFMaker,不推荐用其自带的另存为或打印为pdf(存在很多细节问题)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | f = figure ; P1 = plot (x, y, '-' , 'lineWidth' , 1.2, 'color' , [0.8 0.3 0.5]); %创建图形对象P1 hold on; P2 = plot (x, y2, '-' , 'lineWidth' , 1.2, 'color' , [0.1 0.3 0.5]); %创建图形对象P2 axis ([xmin xmax ymin ymax]) % x y轴范围 1pt = 1/72inch 1 inch = 25.4mm xlabel ( 'Torque $M_x$ (Nm)' , 'interpreter' , 'latex' , 'FontSize' ,8); % Latex格式的label ylabel ( '******' , 'Fontname' , 'Times New Roman' , 'FontSize' ,8); width = 240; % 240pt US letter 双栏 set ( gcf , 'unit' , 'points' , 'PaperUnits' , 'points' , 'PaperPosition' ,[0,0,240,240/5*4],... 'position' ,[500 300 240 240/5*4], 'color' , 'w' , 'PaperSize' ,[width, width/5*4]); set ( gca , 'Fontname' , 'Times New Roman' , 'Fontsize' , 8); % 坐标轴句柄,设置坐标轴刻度数字样式 L1 = legend ([P1 P2], 'Actual torque' , 'Fake' ); %创建图例对象 设置图例中的名字 set (L1, 'Location' , 'northeast' , 'Orientation' , 'vertical' ,... 'Fontname' , 'Times New Roman' , 'FontSize' ,8, 'TextColor' , 'black' ); % legend 格式 %输出图形到文件 print ( 'Figure1' , '-dpdf' , '-r300' ); %输出pdf,简单线图用pdf或eps(-deps),AI打开编辑 print ( 'Figure2' , '-djpeg' , '-r600' ); %输出jpg, 复杂、数据量大的彩图用jpg,600ppi %———————————————————————————————————————— % 创建figure对象 Fig = figure (... 'Units' , 'pixels' ,... 'Name' , 'move2' ,... 'NumberTitle' , 'off' ,... 'IntegerHandle' , 'off' ); % 创建axes对象, 设定坐标轴属性 AxesH = axes (... 'Parent' , Fig,... 'Xlim' , [-10 50],... 'Ylim' , [-10 40],... 'XGrid' , 'on' ,... 'YGrid' , 'on' ,... 'DataAspectRatio' , [1 1 1],... 'Visible' , 'on' ); t = linspace (0,45,101)* pi /180; x = 40* cos (t); y = 40* sin (t); realtrace = line (AxesH, x, y, 'linewidth' ,2); precisetrace = line (AxesH,[x(1) x( end )] ,[y(1) y( end )],... 'color' , 'g' ,... 'linewidth' ,2,... 'linestyle' , '--' ); legend (AxesH,[realtrace,precisetrace],... '真实运动轨迹' , '精确运动轨迹' ,... 'location' , 'northwest' ); % 指定保存路径和格式 saveas (Fig,[ 'D:\abc\' Fig.Name],' pdf') |
1 2 3 4 5 6 7 8 | %更改坐标轴范围,对于自动计算的最小值或最小值范围,分别使用 -inf 或 inf 来表示。 xlim ([0 inf]) ylim ([-0.4 0.8]) %反转坐标轴方向:通过设置 Axes 对象的 XDir 和 YDir 属性,使用 gca 命令可访问 Axes 对象。 ax = gca ; ax.XDir = 'reverse' ; ax.YDir = 'reverse' ; box off %删除坐标区图框轮廓 |
参考:
https://www.zhihu.com/question/269326720/answer/347245807
https://www.zhihu.com/question/269326720/answer/347554215
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示