【MATLAB学习笔记】绘图 |
您所在的位置:网站首页 › 在cad中怎样给图形进行标注 › 【MATLAB学习笔记】绘图 |
目录
前言准备数据添加注释textarrow调整注释位置细节调整保存图片总代码总结
前言
采用MATLAB中的annotation函数对已有绘图添加注释,并且提供了一个非常方便调整位置参数的小技巧。 准备数据随机生成一些数据,rng(100)为设置随机数种子为100,保证每次运行代码产生的随机数是一样的。 %% 数据 rng(100) % 设置随机数种子 % 随机生成数据 x = 0:0.01:2; y = 2*x.^2 + x + 1; yy = y*(1+rand());绘图 f = figure('Name','标注'); plot(x,y,'-k','LineWidth',1.3) hold on plot(x,yy,'--k','LineWidth',1.3)添加注释采用annotation函数: annotation(lineType,x,y) 创建一个在当前图窗中的两个点之间延伸的线条或箭头注释。将 lineType 指定为 ‘line’、‘arrow’、‘doublearrow’ 或 ‘textarrow’。将 x 和 y 分别指定为 [x_begin x_end] 和 [y_begin y_end] 形式的二元素向量。 值对象类型示例‘line’注释线条annotation(‘line’,[.1 .2],[.1 .2])‘arrow’注释箭头annotation(‘arrow’,[.1 .2],[.1 .2])‘doublearrow’注释双箭头annotation(‘doublearrow’,[.1 .2],[.1 .2])‘textarrow’注释文本箭头。要在文本箭头的末尾添加文本,请使用 string 属性。annotation(‘textarrow’,[.1 .2],[.1 .2],‘string’,‘my text’)这是最常用的是textarrow,下面重点介绍该类型。 textarrow这是变量Str为注释的内容,[0.5,0.5],[0.5,0.5]和an.Position表示箭头两点的坐标以及位置,刚开始可以随便给,后续再进行调整。 % 添加注释 Str = '$2x^2 + x + 1$'; an = annotation('textarrow',[0.5,0.5],[0.5,0.5],... 'Interpreter','latex','String',Str,'FontSize',13); an.Position = [0.7,0.7,-0.06,-0.07]; an.LineWidth = 1;
相应修改后的代码如下: Str = '$2x^2 + x + 1$'; an = annotation('textarrow',[0.735714285714286,0.705714285714286],[0.327619047619048,0.415238095238095],... 'Interpreter','latex','String',Str,'FontSize',13); an.Position = [0.735714285714286,0.327619047619048,-0.03,0.087619047619048]; an.LineWidth = 1;再次运行,就可以得到相应位置的注释了。 细节调整详细的解释可以看这篇文章,此外这里还额外设置了设置次刻度线范围(一个主刻度中次刻度线的数量)。 % 设置次刻度线范围 ax = gca; ax.YAxis.MinorTickValues = 0:1:18;若不设置,则为下面的左图,右图为设置后的样式。 ![]() ![]() 其他细节调整: % 设置x轴的属性 xlabel('$x$','Interpreter','latex') set(gca,'XMinorTick',true) % 设置坐标轴的属性 ylabel('$y$','Interpreter','latex') set(gca,'YMinorTick',true) % 设置坐标轴的粗细 set(gca,'lineWidth',1) % 设置刻度线的长度 set(gca,'TickLength',[0.015,0.05]) % 去除上、右边框的刻度线 box off % 取消边框 ax1 = axes('Position',get(gca,'Position'),'XAxisLocation','top',... 'YAxisLocation','right','Color','none','XColor','k','YColor','k'); % 设置坐标区 set(ax1,'linewidth',1) set(ax1,'XTick', [],'YTick', []); % 去掉xy轴刻度 保存图片 %% 保存图片 exportgraphics(f,'Infww_an.png', 'Resolution',600)这只是一个基础的示例,实际中还会有更具体的、更细致的要求,这就需要再做额外调整;另外本人也仍在学习中,这只是个人的学习笔记,可能还有一些不足之处,欢迎指正。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |