2013年4月10日 星期三

第六週課程----stem()、stairs()、feather()、compass()、errorbar()、plotyy()


5.火柴棒圖stem()
stem()函數命令格式如plot()函數一樣圖示為長短不同的火柴棒,預設的mark為小圓,也可加入線條規範語法(Line specification syntax)來指定繪圖曲線的樣式
例如  
>> x=linspace(-6*pi,6*pi,50);
>> y=sin(x)./(x+eps);
>> stem(x,y,'--rx')



6.階梯圖stairs()
stairs()函數為離散資料的圖式命令格式也如plot()函數一樣圖示為高低不一的階梯可加入線條規範語法(Line specification syntax)來指定繪圖曲線的樣式
例如  
>> x=linspace(-6*pi,6*pi,50);
>> y=sin(x)./(x+eps);
>> stairs(x,y,':k')


7.羽毛圖feather()
feather()函數命令格式雖與plot()函數相似,但主要是沿著曲線路徑繪製出複數的大小與方向的圖示feather()函數可加入線條規範語法(Line specification syntax)來指定繪圖曲線的樣式
例如
>> omg = linspace(-pi,pi,20);
>> z = exp(-i*omg);
>> feather(z,':g')



也可以使用
>> omg = linspace(-pi,pi,20);
>> z = exp(-i*omg);
>> feather(real(z), imag(z),':g')
 

8.誤差條狀圖errorbar()
errorbar()函數的命令格式如下
    errorbar(x,y,e)
其中e為誤差條狀圖長度命令格式也可以是
    errorbar(x,y,L,U)
其中L為下方誤差條狀圖長度、U為上方誤差條狀圖長度errorbar()函數可加入線條規範語法(Line specification syntax)來指定繪圖曲線的樣式

例如
>> omg = linspace(-pi,pi,20);
>> y = sin(omg);
>> e = std(y)*y;
>> errorbar(omg,y,e,'--ro')


9.羅盤圖compass()

compass()函數feather()函數相似,但是以原點輻射出去compass()函數可加入線條規範語法(Line specification syntax)來指定繪圖曲線的樣式
例如
>> omg = linspace(-pi,pi,20);
>> z = exp(-i*omg);
>> compass(z,':c')
























          10.雙y軸函數 plotyy()

當大小差異很大的資料要顯示在同一繪圖區時,可以使用雙y軸函數plotyy(),避免過小的數據資料的細節狀況被忽略
plotyy()函數的命令格式如下
    plotyy(x,y1,x,y2,f1,f2)
其中f1與f2為繪圖方法繪圖方法可以使用函數握把(Function handle)(ex: @plot)也能使用字串描述(ex: 'semilogy')plotyy()函數不可使用線條規範語法(Line specification syntax)
例如
>> x = linspace(0,5,100);
>> y1 = cos(5*x)+nthroot(x,3);
>> y2 = exp(x.^2);
>> figure, plot(x,y1,'r',x,y2,'b')

 改用雙y軸函數plotyy()
>> x = linspace(0,5,100);
>> y1 = cos(5*x)+nthroot(x,3);
>> y2 = exp(x.^2);
>> figure, plotyy(x,y1,x,y2,'plot',@semilogy)


2013年4月9日 星期二

第六週課程----填色函數fill()

填色函fill()與plot()函數相似,主要差異是fill()函數會將x軸與函數曲線之間填滿自訂的顏色
fill()函數的命令格式如下
    fill(x, y, c)
其中c為自訂的顏色,不可省略可以使用線條規範語法中的顏色代碼,也可以是rgb的顏色向量,但各元素值須在0(含)~1(含)之間
例如
>> x=linspace(-6*pi,6*pi,100); 
>> y=sin(x)./(x+eps); 
>> fill(x,y,[ 1 0 0.5])



第六週課程----累加圖形area()


若累加圖形函數格式為area(x, y),其中x為x軸座標向量y為y座標向量此時與plot(x, y)函數很像,主要差異是area()函數會將x軸與函數曲線之間填滿顏色

例如
>> x = linspace(0, 2*pi);
>> figure, area(x, sin(x))






除了與plot(x, y)函數很像以外area()函數還可以繪出多資料的累加圖形
例如 
>> x = 0:10; subplot(2,1,1), plot(x,cos(x))
>> hold on, plot(x,cos(x)+sqrt(x),'r')
>> plot(x,cos(x)+sqrt(x)+x.^(3/2),'g'), hold off 
>> Y = [cos(x); sqrt(x); x.^(3/2)]';
>> subplot(2,1,2), area(x,Y) 


兩個圖形相同,差異只是在x軸曲線曲線之間填滿顏色而已

此外 ,所填滿顏色的色系可以用colormap()函數來改變
色系包括 
spring(n)----春天色系
summer(n)----色系
autumn(n)----秋色系
winter(n)----冬色系
hot(n)----暖色系
cool(n)----冷色系
hsv(n)----、青飽和紅色所組成的系 
jet(n)----MATLAB預設色系,由色所組成的色系
colorcube(n)----增強式色系
lines(n)----線性色系 
copper(n)----線性銅色調色系
pink(n)----粉色系
flag(n)----、白、黑色所組成的循環色系
prism(n)----棱鏡色系,由色所組成的循環色系
gray(n)----灰階色系
bone(n)----帶淺藍的灰階色系 
vga----windows 16色系
除了vga色系以外,各色系皆可自訂顏色的數目n可用colorbar()函數觀察
MATLAB預設為64

第六週課程----繪圖函數semilogx()、semilogy()、loglog()

數值資料間的差距過大時若要以此資料直接做出圖表,會因為資料間的變化率過大,繪製的圖表不易判讀這時可採用對值來呈現圖表資料
例如  
 

MATLAB提供許三種對數繪圖函數包括semilogx()、semilogy()、loglog()
針對上一個範例資料,若採用semilogy()函數,可以得到如下的圖表

semilogx()、semilogy()、loglog()函數的命令格式與plot()函數相同,也可加入線條規範語法(Line specification syntax)
例如 
>> x = 0:100;
>> figure, plot(x, x.^2-3*x+5), grid
改用semilogy()函數
>> x = 0:100;
>> figure, semilogy(x, x.^2-3*x+5, 'm'), grid

改用loglog()函數
>> x = 0:100;
>> figure, loglog(x, x.^2-3*x+5, 'm'), grid