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:\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繪圖---坐標系顯示設置