259201 Computer Programming for Engineers Week 12 MATLAB กับการสร้างกราฟ
องค์ประกอบของกราฟ Plot title Legend Y label Data Symbol Tick Mark X label Tick-mark label
การพลอตกราฟ ฟังก์ชัน plot(x,y) พลอตกราฟของ coordinate (x,y) ฟังก์ชัน title(‘text’) กำหนดชื่อ กราฟ ฟังก์ชัน xlabel(‘text) กำหนดป้าย ชื่อแกน x ฟังก์ชัน ylabel(‘text’) กำหนดชื่อ ป้ายชื่อแกน y
การพลอตกราฟ Example >> x =[0:0.1:52]; >> y = 0.4*sqrt(1.8*x); >> plot(x,y) >> xlabel(‘Distance (km)’); >> ylabel(‘Height (km)’); >> title(‘Missile Height as a Function of Downrange Distance’);
การพลอตกราฟ สี รูปแบบเส้นกราฟ สัญลักษณ์ k b c g m r w y ดำ น้ำเงิน ไซแอน เขียว ม่วงแดง แดง ขาว เหลือง - : -- -. เส้นทึบ สันประชนิดจุด เส้นประชนิดขีด เส้นประชนิดขีด และจุด . O X + * s d v ^ < > P H จุด วงกลม กากบาท บวก ดอกจัน สี่เหลี่ยม ข้าวหลามตัด สามเหลี่ยมชี้ลง สามเลี่ยมชี้ขึ้น สามเลี่ยมชี้ซ้าย สามเลี่ยมชี้ขวา ดาวห้าแฉก ดาวหกแฉก สี รูปแบบเส้นกราฟ สัญลักษณ์
การพลอตกราฟ ฟังก์ชัน grid แสดงเส้นตาราง grid on (แสดง), grid off (ไม่แสดง) ฟังก์ชัน axis กำหนดช่วงของการแสดงผลของ แกนต่างๆ axis([xmin xmax ymin ymax]) axis square กำหนดรูปสี่เหลี่ยม axis equal กำหนด scale เท่ากันทั้งสองแกน
การพลอตกราฟ axis([0 52 0 5]): ค่าต่ำสุด และสูงสุดทางแกน x คือ 0 และ 52 grid on axis([0 52 0 5]): ค่าต่ำสุด และสูงสุดทางแกน x คือ 0 และ 52 ค่าต่ำสุด และสูงสุดทางแกน y คือ 0 และ 5
การพลอตกราฟ เมื่อมีการสั่งพลอตกราฟใหม่ รูปกราฟเดิมจะถูกลบทิ้งและแทนที่ด้วยรูปกราฟใหม่ หากต้องการพลอตรูปใหม่ซ้อนทับโดยรูปกราฟเดิมไม่หายไป >> hold on ยกเลิกคำสั่ง hold >> hold off
การพลอตกราฟ เส้นกราฟ 2 เส้นบนกราฟเดียวกัน plot(x,y,u,v) คู่ x-y >> y = sinh(x); >> z = tanh(x); >> plot(x,y,x,z,‘--’) >> xlabel(‘x’) >> ylabel(‘Hyperbolic Sine…and Hyperbolic Tangent’) หรือใช้ฟังก์ชัน hold on (ค้างไว้) >>plot(x,y) >>hold on >>plot(x,z,’-’) คู่ x-y คู่ x-z
การพลอตกราฟ ฟังก์ชัน legend ข้อความอธิบายความหมายของ สันกราฟ >>legend(‘sinh(x)’, ’tanh(x)’) legend
การพลอตกราฟ ฟังก์ชัน gtext ฟังก์ชัน text >>gtext(‘test’) % เมื่อกด enter จะมีเครื่องหมาย % กากบาทปรากฏบนรูป % ให้คลิก mouse ที่ตำแน่งที่ต้องการ % ให้ข้อความ test ปรากฏ ฟังก์ชัน text >>text(x,y,’test’)%x คือค่า coordinate ในแกน x % และ y คือค่า coordinate ใน % แกน y ที่ต้องการให้ข้อความ % test ปรากฏ x และ y อาจเป็น % vector ก็ได้
การพลอตกราฟ การแสดงกราฟย่อย (ฟังก์ชัน subplot) 6 5 4 3 2 1 subplot(m,n,p) %m แถว n column รูปที่ p 6 5 4 3 2 1 มี 6 กราฟ โดยเรียงเป็น 3 แถว 2 column จะนับรูปจากซ้ายไป ขวาบนลงล่างดังต้วเลขในตาราง
การพลอตกราฟ รูปที่ 1 รูปที่ 2 >> x = [0:.01:5]; >> y = exp(-1.2*x).* sin(10*x+5); >> subplot(1,2,1) >> plot(x,y), xlabel(‘x’), ylabel(‘y’) >> axis([0 5 –1 1]) >> x = [-6:.01:6]; >> y = abs(x.^3-100); >> subplot(1,2,2) >> axis([-6 6 0 350]) รูปที่ 1 รูปที่ 2
การพลอตกราฟ ฟังก์ชัน fplot ค่าพิกัดเก็บไว้ใน อาเรย์ x และ y fplot(‘func’,[xmin xmax ymin ymax]) >>[x,y]=fplot(‘cos(tan(x))–tan(sin(x))’,[1 2]) ค่าพิกัดเก็บไว้ใน อาเรย์ x และ y
เปรียบเทียบ fplot กับ plot >> y = ‘cos(tan(x)) - tan(sin(x))’; >> fplot(y,[1,2]) >> x = [1:0.01:2]; >> y = cos(tan(x)) - tan(sin(x)); >> plot(x,y)
การพลอตกราฟ ฟังก์ชัน polyval 3x5+2x4-100x3+2x2-7x+90 >> plot(x,polyval(p,x)) >> xlabel(‘x’), ylabel(‘y’)
ตัวอย่างการพลอตกราฟ ให้พลอตกราฟอุณหภูมิ ระหว่าง อุณหภูมิเซลเซียส (แกน x) กับฟาเรน- ไฮต์ (แกน y) ในช่วงอุณหภูมิเซลเซียสตั้งแต่ -50 ถึง 100 องศาเซลเซียส Input ?? อุณหภูมิเซลเซียส (TC) กำหนดค่า TC ในช่วง -50 ถึง 100 Output ?? อุณหภูมิฟาเรนไฮต์ (TF) และกราฟ Algorithm ?? TF = (9/5)TC + 32
ตัวอย่างการพลอตกราฟ TC = [-50:5:100]; TF = (9/5)*TC + 32; plot(TC,TF,'*') grid; xlabel('Temperature (Celsius)'); ylabel('Temperature (Fahrenheit)'); title('Fahrenheit versus Celsius Temperature Conversion');
การพลอตกราฟ ฟังก์ชัน set สำหรับการกำหนด tick mark >>set(gca, ’Xtick’, [xmin:dx:xmax], ‘Ytick’, [ymin:dy:ymax]) %ให้ค่าประจำแกน x ต่ำสุดที่ xmin และสูงสุดที่ xmax โดยที่มี ระยะห่างเป็น dx และ ให้ค่าประจำแกน y ต่ำสุดที่ ymin และสูงสุด ที่ ymax โดยที่มีระยะห่างเป็น dy >>set(gca, ’Xtick’, [0:0.2:2], ’Ytick’, [0:0.1:1]) %สามารถ set label ของ Tick mark ทางแกน x ให้เป็นชื่อเดือน ได้ >>set(gca,’Xticklabel’,[‘Jan’; ’Feb’; ’Mar’; ’Apr’; ’May’; ’Jun’]) >>set(gca,’Xtick’,[1:6])
การพลอตกราฟ ฟังก์ชัน set สำหรับการกำหนด tick mark การกำหนด tick mark เป็นข้อความ สามารถทำได้โดยใช้คำสั่ง set เช่นกัน >>set(gca,’Xticklabel’,[‘Jan’; ’Feb’; ’Mar’; ’Apr’; ’May’; ’Jun’]) %สามารถ set label ของ Tick mark ทางแกน x ให้เป็นชื่อเดือนได้
การพลอตกราฟ: กราฟรูปแบบอื่นๆ ฟังก์ชัน stem, stairs, bar >>x=[1:6]; >>y=[13 5 7 14 10 12]; >>stem(x,y) >>stairs(x,y) >>bar(x,y)
การพลอตกราฟ ฟังก์ชัน hist(x,n) ใช้สร้างกราฟฮีสโตแกรมของตัวแปร x โดยต้องการแบ่งช่วงข้อมูลออกเป็น n ช่วง ใช้ plot histogram ความถี่ของข้อมูล เช่น น.ศ. 20 คน สอบได้คะแนนต่างๆ กัน (คะแนนเต็ม 10) ต้องการแบ่งช่วงคะแนนเป็น 5 ช่วง อยากทราบจำนวนน.ศ.สอบได้คะแนน สามารถใช้ histogram สร้างกราฟได้
การพลอตกราฟ >> score=[2 9 4 5 4 2 9 5 6 2 8 7 2 3 9 1 6 3 4 6]; >> hist(score,5)