zoukankan      html  css  js  c++  java
  • Matlab---绘图中坐标系显示设置

    Matlab绘图---坐标系显示设置

    【@wp20180507-20180511(week 5)】

    目录:

    一、设置坐标范围

    二、修改坐标轴显示的刻度、密度、lable文字、位置等

    三、Matlab绘制出来的图像进行保存

     

    正文:

    一、        设置坐标范围

    1)        函数axis()axis进行设置(对当前坐标轴进行设置)

    如果是二维:axis([xmin xmax ymin ymax])  设置x-y坐标指定的区间范围。

    xmin是x最小xmax是x最大,ymin,ymax分别是y最小,y最大

    比如,要改编x坐标

    axis([1 120000 -inf inf])

    如果改y坐标

    axis([ -inf inf 1 120000])

    当然,可以两个都改 -inf inf是正负无穷大

    如果是三维:axis([xmin xmax ymin ymax zmin zmax]) 设置x-y-z坐标指定的区间范围。

    还要考虑到z坐标。

    示例如下:

    >> x = 1:10;

    >> subplot(2,1,1) % 默认范围

    >> plot(x,x.^2)

    >> subplot(2,1,2) % 设置x范围[0,12],y任意

    >> plot(x,x.^2,'r')

    >> axis([0 12,-inf,inf])

     

    具体用法如下:

    plot(x, y);  // 画图后用axis函数设置坐标轴的范围

    axis([xmin xmax ymin ymax]); % 设置坐标轴在指定的区间

    xmin、xmax 表示设置横坐标的最小最大值;

    ymin、ymax 表示设置纵坐标的最小最大值。

     

    2)        函数set ()set函数进行设置(对指定的坐标轴进行设置)

    具体用法如下:

    plot(x, y);  // 画图后用set函数设置坐标轴的属性

    set(handles,'xtick',0:100:2500) % handles可以指定具体坐标轴的句柄

    功能:设置X轴坐标范围0到2500,显示间隔是100;

    set(handles,'ytick',0:100:2500) % handles可以指定具体坐标轴的句柄

    功能:设置X轴坐标范围0到2500,显示间隔是100;

     

    3)        函数xlim( )/ ylim ( )

    使用方法: xlim([XMIN XMAX])    % sets the x limits

    x轴上下限设定xlim([a,b]);

    y轴上下限设定ylim([a,b])

     

    % set(gca,'xlim',[-20 20],'ylim',[-20 20]); 表示:设置当前图的横轴和纵轴的范围,lim就是limite的意思。

    也可以不用set设置,

    而直接用函数xlim和ylim设置:xlim(gca,[-20,20]); ylim(gca,[-20,20]);

    也可以用函数axis设置:axis(gca,[-20,20,-20,20]) ,

    gca是get hanlde to current axis(得到当前图的句柄)的意思,除set函数外,在以上函数中均可省略不写,默认就是gca。

     

    4)        在生成的图中直接设置

    figure右上角有一个图表,按下去后可以打开图像高级编辑菜单,然后在axis当中修改。

    直接在Figure Properties里面调节坐标轴的范围就OK了。

    进入“显示绘图工具和停靠图形”界面后,选中坐标轴,在坐标轴的属性中有刻度属性,可以根据要求自行修改。

    具体:plot()或者其他命令打开的figure文件中——Edit——Figure Properties——下面的Xlimits项就可以调节X轴范围,在X Label后面的Ticks选项里可以调节标尺的间距。同理可以调节Y轴的范围和你所谓的标尺。

    比如设置横轴范围0~100就是:xlim( [ 0, 100 ] );

     

    二、        修改坐标轴显示的刻度、密度、lable文字、位置等

    如果想在该图像中显示X轴的部分刻度值,并且与现有坐标轴不同。

    1)        修改---显示刻度的位置与显示内容

    xtick表示显示刻度的位置,可输入以下代码到matlab命令窗口中去:

    set(gca, ‘XTick’, [1 5 10]);  %这里是只显示1,5,10三个刻度值。

    xticklabel表示显示的内容,输入以下代码:

    set(gca, 'XTickLabel' ,{'a','b','c'}) ; %将上面的三个刻度值改为a,b,c。

    类似,修改Y轴的刻度值,只需将XTick和XTickLabel改为YTick和YTickLabel。

    例,修改标注的字:

    set(gca,'Xticklabel',{'xx','yy','zz'},'Yticklabel',{'aa','bb'});

     

    改变坐标轴的显示数值,可以用:set(gca,'xtick',xtick,'xticklabel',xticklabel) ;

    %gca为Get Current Axis的Handle,xtick为显示刻度的位置,xticklabel为显示的内容。

     

    注意,gcf和gca:这里需要说明gcf表示的是整个图形,包括上面的工具栏等等;而gca只是代表了其中的坐标轴及内部的数据。

     

    2)        修改---字体大小

    在修改了标注之后,顺便还可以修改字体大小。

    set(gca,'Xtick',[0 20 40],'Ytick',[-0.25 0.25],'fontsize',20);

    在Figure窗口里,通过Edit-Axes Properties....-Font-Font Size即可设置。

    set(gca,'FontSize',20); %只能同时改变x y轴显示的字体大小。

    set(get(gca,'YLabel'),'Fontsize',20) ; %是针对标注的而不是坐标刻度。

     

    3)        修改---字体的方向

    使用格式:

    set(gca,'XTickLabelRotation',45);

     

    三、        Matlab绘制出来的图像进行保存

    这里借助第三方截图软件,略过!

    1)        直接另存为

    在figure中使用菜单file——>saveas——>选择保存形式(fig,eps,jpeg,gif,png,bmp等)。缺点:另存为的图像清晰度有很大的牺牲。

     

    2)        复制到剪贴板

    在figure中使用菜单edit——>copy figure——>此时图像就复制到剪贴板了,我们可以借助其他软件(比如:绘图板)保存为需要的图片。

     

    3)        saveas命令格式

    Matlab提供直接的saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】

    % saveas(figure_handle,filename,fileformat)

    plot(1:10);

    saveas(gcf,‘myfig.jpg’)

    对于,saveas的三个参数:

    (1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.

    (2)文件名。

    (3)单引号字符串,指定存储格式。

    例:saveas(gcf,['D:MATLAB7work','yanbao',num2str(k),'.jpg']);

     

    4)        print函数

    print函数原本不是用来进行图像保存了,而是操作打印机的,但是这里我们可以借用下

    % print(figure_handle,fileformat,filename)

    x=-pi:2*pi/300:pi;

    y=sin(x);

    plot(x,y);

    %Matlab根据文件扩展名,自动保存为相应格式图片,另外路径可以是绝对也可以是相对

    print(gcf,'-dpng','abc.png')   %保存为png格式的图片到当前路径

    print的三个参数:

    (1)图形句柄,如果图形窗口标题栏是“Figure 3”,则句柄就是3.

    (2)单引号字符串,指定存储格式。用gcf可以获取当前窗口句柄。

    png格式:'-dpng'。

    Jpeg格式: '-djpeg'。

    tiff格式:'-dtiff '。

    bmp格式: '-dbitmap'

    (3)文件名。

    例:

    >> x=-pi:2*pi/300:pi;

    >> y=sin(x);

    >> plot(x,y);

    >> print(gcf,'-dpng','abc.png')   % 保存为png格式的图片。

     

    >> figure(2)            % 新建一个句柄为2的图形窗口。

    >> plot(x,cos(x));    % 在句柄为2的图形窗口上画图。

    >> grid

    >> print(2,'-djpeg','C:abc.jpeg'); %将句柄为2的图形保存为jpeg/jpg格式的图片,文件名为'C:abc.jpeg'。

     

    有时只有一个Matlab图像的fig文件,但没有该图像的相关坐标数据,如何获取fig图像的数据方法:

    1、将那个fig文件保存到Matlab的搜索路径下,双击打开它

    2、在Matlab的command中输入如下内容:

    h=get(gcf,'chidren')

    data=get(h,{'xdata','ydata','zdata'})

    %此时图形中所有图像的三维数据x,y,z将会以结构体的形式保存到data变量中了。

  • 相关阅读:
    关于托管存储过程的部署, 调试和性能
    Fast Fourier Transform in C# (CookyTurkey)
    The Story of Lena(.tiff)
    反射之反思(转)
    分享Oracle9i中建立自增字段的最新办法
    C#操作注册表
    Oracle服务器的常用命令行详细讲解
    为汶川受灾群众祈福!!!!!
    新的开始,新的起点
    完全删除Oracle数据库的方法
  • 原文地址:https://www.cnblogs.com/carle-09/p/9033621.html
Copyright © 2011-2022 走看看