matlab画图技巧
显示的上下限,这些属性可以通过函数灵活改动,此处总结一小部分。
figure;
%设置坐标轴线宽,加边框,坐标字号 axes('linewidth',1, 'box', 'on', 'FontSize',16);
%设置坐标轴label xlabel('时间(s)','FontSize',16); ylabel('压力(pa)','FontSize',16); grid on; hold on; plot(ScopeData1.time, ScopeData1.signals.values, 'k', 'linewidth', 1);
%设置坐标轴上下限xlim([0, 0.5]);
ylim([5300000, 5800000]);
ppfranklee 的 MATLAB 操纵坐标轴
axis off;
% 去掉坐标轴 axis tight; % 紧坐标轴 axis equal; % 等比坐标轴 axis([-0.1, 8.1, -1.1, 1.1]); % 坐标轴的显示范围
% gca: gca, h=figure(...); set(gca, 'XLim',[3 40]); % X轴的数据显示范围 set(gca, 'XTick',[-3.14,0,3.14] ); % X轴的记号点 set(gca, 'XTicklabel',{'-pi','0','pi'}); % X轴的记号 set(gca, 'XTick', []); % 清除X轴的记号点 set(gca, 'XGrid','on'); % X轴的网格 set(gca, 'XDir','reverse'); % 逆转X轴 set(gca, 'XColor','red'); % X轴的颜色
matlab 画图, 去掉边
2011-02-25 11:12
1. 去掉边框, 空白区域。
首先要了解的是Matlab是面向对象的。最高等级的对象是screen,它定义了figure可以用的最大szie。 screen下面是figure。figue就是你画图的时候跳出来的那个新的对话窗口。如果figure变化,screen是不会跟着变化的。但screen变化的话,figure就要跟着变化了。
figure下面是axes。axes是那个窗口里面你要画的东西。axes的大小和位置取决于figure,如果你放大缩小figure的大小的话,里面的图线也会跟着变化的。
plot(j,y,'Marker','+','LineWidth',1.5,'LineStyle',':','Color',[0 0 1])
% 设置坐标轴距离画板边距, 左下山下,依次调整图的空白区域。 set (gca,'position',[0.1,0.1,1,1] );
2.
用matlab画了一张图,投稿时要缩小,缩小后字体就会过小或者发虚。
我摸索出比较好的方法是如下的代码:
%%%%%%%%%%%%%%%%%%%%%
%plot your figure before
%%%%%%%%%%%%%%%%%%%%%
% figure resize set(gcf,'Position',[100 100 260 220]); set(gca,'Position',[.13 .17 .80 .74]); figure_FontSize=8; set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top'); set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle'); set(findobj('FontSize',10),'FontSize',figure_FontSize); set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
解释:
set(gcf,'Position',[100 100 260 220]); 这句是设置绘图的大小,不需要到word里再调整大小。我给的参数,图的大小是7cm
set(gca,'Position',[.13 .17 .80 .74]); 这句是设置xy轴在图片中占的比例,可能需要自己微调。
figure_FontSize=8; set(get(gca,'XLabel'),'FontSize',figure_FontSize,'Vertical','top'); set(get(gca,'YLabel'),'FontSize',figure_FontSize,'Vertical','middle'); set(findobj('FontSize',10),'FontSize',figure_FontSize);
这4句是将字体大小改为8号字,在小图里很清晰
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);
这句是将线宽改为2
3.
4.设置坐标轴参数 (1)axis,设置当前轴的坐标范围; (2)axes,用指定的特征创建一个新坐标轴; (3)get和set,查询或设置已有轴的各种特性; (4)gca,返回当前轴的句柄。 如果图形中有多个坐标轴,在当前轴为最后图形创建的图形的坐标轴。Matlab绘制图形数据时候,会自动选择坐标轴范围,用axis可以设置新的坐标轴的范围,用一个具有四个元素的矢量表示坐标范围,格式为: axis([xmin,xmax,ymin,ymax]);如果不指定某一个方向范围可以使用inf或-inf表示,则产生半自动坐标轴范围。 对于线性坐标轴,matlab会自动根据数据范围设置等间距的坐标轴数值标记,用set,修改gca变量中xtick和ytick的属性值,可以自定义坐标轴标记。如 set(gca,’ytick’,[-0.3:0.1:1]); 可以使用字符矢量通过修改gca变量中的’XtickLabel’实现标记字符,如: set(gca,’Xtick’,-pi
i/2i); set(gca,’XtickLabel’,{‘-pi’,’-pi/2’,’0’,’pi/2’,’pi’}; Axis square设置两坐标轴长度成相等。 Axis equel设置坐标轴标记间距相等; Axis equel tight;设置图形以紧缩方式显示。 5.图形窗口 figure(2);%以第二个图形窗口作为当前图形输出的窗口; subplot(m,n,i);%分成m×n个小区域,I指定当前绘图区域; colordef 颜色;%如white,black等,设置绘图背景颜色。 6.图形标注 Matlab提供了几个函数用于图形的标注: 函数名功能描述 Title添加图形标题 Xlabel,xlabel,zlabel添加X,Y,Z轴标注 Legend在图形中添加图例 Text在指定位置显示文本 Gtext使用鼠标将指定文本放在图形中的位置 如下为添加标题,坐标轴标注实例: >> t=0i/100i*2; >> plot(t,sin(t)); >> xlabel('t=0 to 2pi','Fontsize',16); >> ylabel('sin(t)','fontsize',16); >> title('Value of the Sine from Zero to Two pi','fontsize',16) 注:标注时:pi显示成希腊字母,alpha,beta。 在图形中添加标注与图例,如下: >> t=0i/100
i*2; >> plot(t,sin(t)); >> xlabel('t=0 to 2pi','Fontsize',16); >> ylabel('sin(t)','fontsize',16); >> title('Value of the Sine from Zero to Two pi','fontsize',16) >> text(3*pi/4,sin(3*pi/4),'leftarrow=.707','fontsize',16) >> text(pi,sin(pi),'leftarrowsin(t)=0','fontsize',16) >> text(5*pi/4,sin(5*pi/4),'sin(t)=-.707rightarrow','HorizontalAlignment','right','fontsize',16) >> gtext('graph of function sin(x)') %可以用鼠标指定字符串所需放设位置。 >> H=legend('con','sin',0) %绘制图例