matlab繪圖設置


設置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', ':');  % 設置為虛線

img

似乎網格線有點不太清楚,不要着急,設置一下透明度就可以。
3、設置透明度

set(gca, 'GridAlpha', 1);  % 設置透明度,注意參數的范圍是[0,1]

網格線變清楚了

img

下面重點來了,怎么設置網格線的密度呢!!!

設置網格線的密度

有三種方法,第一種是連同坐標也發生變化,第二種只更改網格線密度,但密度不能自由控制,第三種隨意控制密度。以 x 軸為例。
當前的圖 x 軸是 0:50 划為 10 段,每段長 5。

% 方法1
set(gca, 'XTick', 0:50/5:50);  % 此時划分為了5段,每段長10,網格線和坐標軸都發生了變化

這種方法實際上是更改了坐標軸的間隔。

img

在方法一圖的基礎上,坐標軸不變,將網格豎線變密。

% 方法2,這種方法無法自由控制網格線的密度
set(gca, 'XMinorGrid','on');

img

在方法 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);

img

大功告成!!
解釋一下,XTick 和 XTickLabel 的區別:XTick 控制 X 軸上的那個小豎線,XTickLabel 用來控制 X 軸下面的數字顯示,其他坐標軸也一樣。再來看一下 a 和 b 是什么?

img

補充:

ylim([ymin,ymax]);%對Y軸設定顯示范圍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM