1. 程式人生 > >Matlab繪圖---坐標系顯示設置

Matlab繪圖---坐標系顯示設置

sim 數據 jpg grid tro 另存為 部分 PE 標註

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:\MATLAB7\work‘,‘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變量中了。

Matlab繪圖---坐標系顯示設置