我发现隔一段时间不碰MATLAB,等到需要的时候来用,简直觉得寸步难行,很多命令都忘记了,因此在此小小记录一下关于在MATLAB中画图的方方面面(#^.^#)
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\' |
秒数 |
#加上线性拟合 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(存在很多细节问题)
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\')
%更改坐标轴范围,对于自动计算的最小值或最小值范围,分别使用 -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
请发表评论