設置ezplot的現款
說明
在MATLAB中繪制隱函數的圖像或者繪制沒有數據的函數,常常使用ezplot命令,但是這個命令有些缺點,就是無論你在這里面繪制了多少個函數,它返回的句柄只有一個,也就是說,使用這個函數繪制多條曲線時系統會默認把所有曲線當成一條,這也就限制了我們的許多操作,比如我們想單獨對其中一條曲線的顏色進行修改,這就變得十分困難了,所以我們在使用這個命令前一定要三思,如果我們僅僅繪制一條曲線,那毫無疑問是非常方便的
只有一條曲線
當使用ezplot命令繪制的只有一條曲線時,我們可以使用句柄對曲線以及圖像的各種參數進行修改
h = ezplot(s,[0 2500 ])
1
h就是返回的句柄,可以使用set對各種參數進行修改
如果我們要設置曲線的顏色時,使用
set(h,'color','k','LineWidth',3.5)
1
就輕松的對線條的顏色,粗細進行了修改
隨意修改網格線和坐標軸顯示
- [matlab 幫助文檔的 grid 參數表]
- [幾種常用的操作]
- [設置網格線的密度]
matlab 幫助文檔的 grid 參數表
在畫圖的時候發現有一根線剛好和網格線重疊了,導致顯示的不太清楚,然后就想修改一下網格線的位置,然后將實現過程寫了下來。
查了下資料發現基本都是修改了網格坐標軸也發生變化,如果想實現坐標軸數值和網格線分別設置,直接閱讀設置網格線密度中的方法3。
屬性 | 描述 |
---|---|
XTick, YTick, ZTick | Location of tick marks and major grid lines for each axis direction |
XGrid, YGrid, ZGrid | Display of major grid lines for each axis direction |
XMinorGrid, YMinorGrid, ZMinorGrid | Display of minor grid lines for each axis direction |
LineWidth | Line width of grid lines, axes box outline, and tick marks |
GridLineStyle | Major grid line style |
MinorGridLineStyle | Minor grid line style |
GridColor | Major grid line color |
MinorGridColor | Minor grid line color |
GridAlpha | Major grid line transparency |
MinorGridAlpha | Minor grid line transparency |
Layer | Location of grid lines with respect to the plotted data |
幾種常用的操作
1、打開關閉網格線
grid on; % 打開
grid off; % 關閉
2、設置線型,以虛線為例(線型的參數和 plot 線型是一樣的)
set(gca, 'GridLineStyle', ':'); % 設置為虛線
似乎網格線有點不太清楚,不要着急,設置一下透明度就可以。
3、設置透明度
set(gca, 'GridAlpha', 1); % 設置透明度,注意參數的范圍是[0,1]
網格線變清楚了
下面重點來了,怎么設置網格線的密度呢!!!
設置網格線的密度
有三種方法,第一種是連同坐標也發生變化,第二種只更改網格線密度,但密度不能自由控制,第三種隨意控制密度。以 x 軸為例。
當前的圖 x 軸是 0:50 划為 10 段,每段長 5。
% 方法1
set(gca, 'XTick', 0:50/5:50); % 此時划分為了5段,每段長10,網格線和坐標軸都發生了變化
這種方法實際上是更改了坐標軸的間隔。
在方法一圖的基礎上,坐標軸不變,將網格豎線變密。
% 方法2,這種方法無法自由控制網格線的密度
set(gca, 'XMinorGrid','on');
在方法 1 圖的基礎上將網格線變密兩倍
% 方法3,可以自由控制
grid on;
set(gca, 'GridLineStyle', ':'); % 設置為虛線
set(gca, 'GridAlpha', 1); % 設置透明度
set(gca, 'XTick', 0:50/10:50); % 划分為10段,每段長5,這是想要的網格線數量
N = 2; % 想要的坐標軸顯示,即隔一個網格顯示一個刻度,10/5 = 2
% 設置想要的坐標軸刻度
a = get(gca,'XTickLabel');
b = cell(size(a));
b(mod(1:size(a,1),N)==1,:) = a(mod(1:size(a,1),N)==1,:);
set(gca,'XTickLabel',b);
大功告成!!
解釋一下,XTick 和 XTickLabel 的區別:XTick 控制 X 軸上的那個小豎線,XTickLabel 用來控制 X 軸下面的數字顯示,其他坐標軸也一樣。再來看一下 a 和 b 是什么?
補充:
ylim([ymin,ymax]);%對Y軸設定顯示范圍