นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

Our Shangri-La
Ico64
Kittisakdi Choomalee

ภาควิชาเวชศาสตร์ชุมชน คณะแพทยศาสตร์ มหาวิทยาลัยสงขลานครินทร์
เครือข่าย
สมาชิก · ติดตาม: 0 · ผู้ติดตาม: 16

อ่าน: 1715
ความเห็น: 2

ก้าวย่าง ทางเดิน ลืมเลือนคืนวัน ดั้นด้นไป: เที่ยวบาร์กับ R กันเถอะ ตอนที่ ๑

barplot ใน R

มาต่อกันด้วยเรื่องลึกแต่ไม่ลับกับ R กันต่อนะครับ คราวนี้ผมจะชวนไปเที่ยวบาร์กันครับ แต่บาร์ที่ว่านี้ เด็กก็เข้าได้ ผู้ใหญ่ก็เข้าดี

เรามาว่ากันด้วยเรื่อง bar chart กันนะครับ

หรือแผนภูมิแท่งนั่นเองครับ

ผมลองไปหาคำนิยามของแผนภูมิแท่ง ไปเจอหลายที่เหมือนกันครับ ผมคัดลอกความหมายของแผนภูมิแท่งมาจากที่นี่นะครับ (http://www.trueplookpanya.com/true/knowledge_detail.php?mul_content_id=2153 [เข้าถึง 18102012])

แผนภูมิแท่ง คือแผนภูมิที่ประกอบด้วย แกนสองแกน คือแกนนอนและแกนตั้ง และรูปสี่เหลี่ยมผืนผ้าที่มีความกว้างของแต่ละรูปเท่ากัน ส่วนความยาวจะแปรตามขนาดของข้อมูล เรียกรูปสี่เหลี่ยมแต่ละรูปนี้ว่า แท่ง (bar) การนำเสนอข้อมูลอาจจัดให้แท่งแต่ละแท่งอยู่ในแนวตั้ง หรือแนวนอนก็ได้ โดยวางเรียงให้ชิดกันหรือห่างกันเล็กน้อยเท่า ๆ กันก็ได้ พร้อมทั้งเขียนรายละเอียดของแต่ละแท่งกำกับไว้ นอกจากนี้เพื่อความสวยงาม อาจจะใช้วิธีแรเงาหรือระบายสี เพื่อให้ดูสวยงามและสะดวกในการศึกษาเปรียบเทียบ

ข้อมูลที่เหมาะสำหรับการใช้แผนภูมิแท่งในการนำเสนอข้อมูล ได้แก่ ข้อมูลที่จำแนกตามคุณภาพ ตามกาลเวลา และตามภูมิศาสตร์

คิดง่าย ๆ ครับ ข้อมูลที่เหมาะสำหรับนำเสนอด้วยแผนภูมิแท่งก็คือข้อมูลที่จำแนกเป็นจำนวนหรือร้อยละของแต่ละกลุ่ม

พอหอมปากหอมคอนะครับ

แต่ใครจะหอมอย่างอื่นก็ไม่ว่ากันครับ

ในบันทึกวิพากษ์แชร์ ๘ นั้นผมนำเสนอข้อมูลด้วยแผนภูมิแท่ง ๒ แผนภูมิคือจำนวนบันทึกรวมในแต่ละสัปดาห์ย้อนหลัง ๙ สัปดาห์ และจำนวนสมาชิกวงแชร์ที่มีการเขียนบันทึกจำแนกรายสัปดาห์ย้อนหลัง ๙ สัปดาห์เช่นกัน

ส่วนอีกรูปนั้นไม่ได้เป็นแผนภูมิแท่งนะครับ

รูปทั้ง ๓ ในบันทึกวิพากษ์แชร์ ๘ นั้นผมสร้างจากโปรแกรม R ครับ และในบันทึกนี้เรามาดูกันนะครับว่า ผมใช้คำสั่งอะไรบ้างจึงได้แผนภูมิแท่งทั้ง ๒ รูปมา

ก่อนอื่นก็ต้องใส่ข้อมูลที่จะนำมาสร้างแผนภูมิก่อนครับ ข้อมูลทั้งหมดผมนำมาจากบันทึกของพี่โอ๋ย้อนหลังไป ๙ บันทึกครับ

ทุกอย่างใช้วิธีการทำมือทั้งหมดนะครับ

ขั้นตอน

เปิดโปรแกรม R ขึ้นมา

ในที่นี้ผมจะสร้างตัวแปร (วัตถุ) ชื่อ a สำหรับเก็บข้อมูลจำนวนสมาชิกวงแชร์ที่เขียนบันทึกในแต่ละสัปดาห์ย้อนหลัง ๙ สัปดาห์ (30, 36, 48, 34, 43, 35, 34, 21 และ 36 คนตามลำดับ) ดังคำสั่งด้านล่างครับ (เครื่องหมาย ">" เป็นเครื่องหมายที่หมายถึง prompt ของโปรแกรม R ครับ หรือสถานะที่พร้อมรับ (บรรทัด) คำสั่ง)


> a <- c(30,36,48,34,43,35,34,21,36)

เมื่อเราเรียกตัวแปร a โปรแกรม R จะแสดงค่าที่เก็บไว้ในตัวแปร a (ส่วนที่มีพื้นหลังสีเขียว) ตามที่เราสั่งตามคำสั่งข้างต้น

> a
[1] 30 36 48 34 43 35 34 21 36

คราวนี้ก็มาถึงข้อมูลจำนวนบันทึกจำแนกรายสัปดาห์ย้อนหลัง ๙ สัปดาห์เช่นกันครับ คราวนี้ผมสร้างตัวแปร bl สำหรับเก็บค่าจำนวนบันทึกจำแนกรายสัปดาห์ ย้อนหลัง ๙ สัปดาห์ (74, 66, 95, 83, 86, 73, 68, 48 และ 56 บันทึกตามลำดับ)

> bl <- c(74,66,95,83,86,73,68,48,56)

และเมื่อเรียกตัวแปร bl โปรแกรม R จะแสดงค่า

> bl
[1] 74 66 95 83 86 73 68 48 56

เมื่อนำเข้าข้อมูลเสร็จเรียบร้อยแล้วขั้นต่อไปก็คือการสร้างแผนภูมิแท่งครับ

คำสั่งของโปรแกรม R ที่ใช้สำหรับการสร้างแผนภูมิแท่ง (Bar Chart) คือคำสั่ง barplot()

ถ้าเราสั่ง

> barplot(a)

ก็จะได้แผนภูมิแท่งเป็น

หรือสั่งให้สร้างแผนภูมิแท่งของตัวแปร bl หรือจำนวนบันทึกจำแนกรายสัปดาห์ย้อนหลัง ๙ สัปดาห์

> barplot(bl)

จะได้แผนภูมิแท่งเป็น

เห็นไหมครับว่าง่ายมาก

เพียงแต่แผนภูมิที่ได้ดูไม่สวยไม่งามอย่างที่ต้องการเท่านั้นครับ เนื่องจากโปรแกรม R จะใช้ค่าที่ตั้งไว้เป็นค่าเริ่มต้นในการสร้างแผนภูมิหากเราไม่ระบุค่าที่เราต้องการลงไป

จะเห็นว่าแผนภูมิแท่งทั้งสองไม่มีการแสดง label ของแต่ละแกน ไม่มีชื่อแผนภูมิ ดูแล้วไม่รู้ว่าแผนภูมิทั้ง ๒ แสดงข้อมูลอะไร มีแต่แท่งสูง ๆ ต่ำ ๆ เท่านั้น แต่ละแท่งสีก็เหมือนกัน

คราวนี้ก็ต้องมาถึงรอบของการตกแต่งแผนภูมิกันแล้วล่ะครับ

แต่ใครจะตกตอนแต่งเท่าไหร่ก็เป็นเรื่องของแต่ละคนครับ ^_^

ค่าที่จะนำมาใช้ในการตกแต่งแผนภูมิมีอยู่ด้วยกัน ๒ ส่วนใหญ่ ๆ นะครับ

ส่วนแรกคือ ค่าที่กำหนดไว้สำหรับคำสั่ง barplot โดยเฉพาะ และอีกส่วนหนึ่งเป็นค่ามาตรฐานที่สามารถนำมาใช้ได้กับคำสั่งในการสร้างกราฟ/ แผนภูมิได้เกือบทั้งหมด

ผมจะกำหนดค่าสูงสุดต่ำสุดของแกนตั้งก่อนะครับ

หากเราดูแผนภูมิทั้ง ๒ รูปเราจะเห็นได้ชัดเจนทั้ง ๒ แผนภูมิ จะมีแท่ง (bar) จำนวนหนึ่งสูงกว่าแกนตั้ง ซึ่งเราไม่รู้ว่าค่าเป็นเท่าไหร่

เรากำหนดค่าสูงสุด - ต่ำสุด ให้กับแกนตั้งได้โดยใช้ตัวเลือก ylim

ylim=c(x,y)

  • c(x,y) เป็นกลุ่มของค่าที่มีมากกว่า ๑ ค่าอยู่ด้วยกัน หรือประกอบไปด้วยค่าที่อยู่ภายในวงเล็บ
  • x และ y คือตัวเลขที่เป็นค่าต่ำสุดและสูงสุดของแกน y หรือแกนตั้ง

เช่นในแผนภูมิแรก จากข้อมูลเราพบว่าค่าสูงสุดก็คือ ๔๘ ดังนั้นค่าสูงสุดของแกนตั้งของแผนภูมิที่ ๑ จึงควรจะเป็น ๕๐ หรือ ๖๐ ไม่เกินนี้

แผนภูมิที่ ๒ ค่าสูงสุดคือ ๙๕ ดังนั้นค่าสูงสุดของแกนตั้งจึงควรจะกำหนดให้เป็น ๑๐๐ หรือ ๑๑๐ ประมาณนี้

ถ้าค่าสูงสุดของแกนตั้งมีค่าสูงกว่าค่าสูงสุดของข้อมูลหรือแท่งมากเกินไปแล้ว จะทำให้แต่ละแท่งของข้อมูลเตี้ยเกินไปครับ

ส่วนค่าต่ำสุดนั้นคือ ๐ ทั้ง ๒ แผนภูมิครับ

แผนภูมิแรกเรากำหนด ylim เป็น ๐ และ ๕๐

การใส่ตัวเลือกต้องอยู่ภายในคำสั่ง barplot นะครับ โดยใช้เครื่องหมายจุลภาคคั่นตัวเลือกแต่ละตัวเลือก

แผนภูมิที่ ๑ จึงเป็น

> barplot(a, ylim=c(0,50))

แผนภูมิที่ ๒ จึงเป็น

> barplot(bl, ylim=c(0,100))

ในครั้งต่อไปผมจะแสดงภาพตัวอย่างคำสั่งเพียงภาพเดียว (แผนภูมิเดียว) นะครับ เพื่อไม่ให้เป็นการเยิ่นเย้อเกินไป

หรือเราอาจจะกำหนดค่าต่ำสุด-สูงสุดเอาไว้ในวัตถุใดวัตถุหนึ่งก่อนก็ได้ เช่น เราใส่ค่าต่ำสุด-สูงสุดของแกนตั้งของแผนภูมิแท่งแผนภูมิที่ ๑ เป็น ๐ และ ๕๐ เก็บไว้ในวัตถุหรือตัวแปรชื่อ alim

> alim <- c(0,50)

สั่งให้โปรแกรม R สร้างแผนภูมิแท่งของตัวแปร a

> barplot(a, ylim=alim)

ผลที่ได้ก็จะเหมือนกับคำสั่ง

> barplot(a, ylim=c(0,50))

ข้อสังเกต

หากเรากำหนดต่ำสุด-ค่าสูงสุดเอาไว้ในวัตถุใดวัตถุหนึ่งแล้วนำค่าที่เก็บไว้ในวัตถุนั้นมาใช้ บางทีเราอาจจะงงหรือจำไม่ได้ว่าเราได้กำหนดค่าอะไรไว้ หรือเวลามีข้อผิดพลาดที่เกิดขึ้นจากการใช้คำสั่ง หรือแผนภูมิที่ได้มีความผิดปกติไปเราไม่สามารถดู/ หาข้อผิดพลาดได้จากบรรทัดคำสั่งได้เพียงแค่บรรทัดคำสั่งเดียว ต้องตามไปดูการกำหนดค่าอื่น ๆ ที่มีในบรรทัดคำสั่งประกอบด้วย

ผมแถมตัวเลือกสำหรับการ label หรือใส่ชื่อให้กับแกนตั้งและแกนนอนของแผนภูมิแท่งให้นะครับ

การกำหนดชื่อ/ ใส่ชื่อ/ label ให้กับแกนของแผนภูมิแท่งนั้น ให้ใช้ตัวเลือก xlab และ ylab

xlab สำหรับการใส่ชื่อให้กับแกน x หรือแกนนอน

ylab สำหรับการใส่ชื่อให้กับแกน y หรือแกนตั้ง

ผมใส่ชื่อ

แกนตั้ง (y) ให้กับแผนภูมิแรกเป็น "จำนวน (คน)" หรือ ylab="จำนวน (คน)"

แกนนอน (x) ให้กับแผนภูมิแรกเป็น "สัปดาห์" หรือ xlab="สัปดาห์"

บรรทัดคำสั่งของโปรแกรมจะเป็น

> barplot(a, ylim=alim, xlab="สัปดาห์", ylab="จำนวน (คน)")

ผลจากคำสั่งเป็นดังรูปครับ

ข้อสังเกต

จะเห็นว่าชื่อของแกนตั้งและแกนนอนที่เราใส่ให้เป็นภาษาไทยนั้นการแสดงผลไม่เป็นภาษาไทยแต่อย่างใด กลับเป็นภาษามนุษย์ต่างดาวไปซะงั้น

บันทึกหน้าเรามาต่อกันด้วยการปรับแต่งแผนภูมิกันต่อนะครับ

ทั้งนี้เพื่อเป็นการ "เพิ่มยอดบันทึก" นะครับ (ฮา)

เราเอง

มีผู้แปลชื่อเพลงนี้ (แซซี้อ้ายลื่อเจ็กนั้ง) เอาไว้ประมาณว่า "เป็นตายก็จะรักเธอคนเดียว" เข้ากับบรรยากาศของเทศกาลกินเจครับ


หมวดหมู่บันทึก: บริการวิชาการ
สัญญาอนุญาต: ซีซี: แสดงที่มา-ไม่ใช้เพื่อการค้า-อนุญาตแบบเดียวกัน Cc-by-nc-sa
สร้าง: 19 ตุลาคม 2555 12:34 แก้ไข: 19 ตุลาคม 2555 14:34 [ แจ้งไม่เหมาะสม ]
ดอกไม้
สมาชิกที่ให้กำลังใจ: Ico24 ServiceMan, Ico24 anni, และ 4 คนอื่น.
สมาชิกที่ให้กำลังใจ
 
Facebook
Twitter
Google

บันทึกอื่นๆ

ความเห็น

เป็นเพลงจีบหญิงที่น่ารักมาก และดนตรีของเพลงนี้ก็เพราะมากๆ เลยครับ

ว่าแต่ว่าถ้า บาร์ฉาดแล้ว จะมีอะไรต่อดีครับ ฮิๆ

ก็ต้องไปเที่ยวผับให้เหม็ด (pubmed)

^_^

เราเอง

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 3.238.190.82
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ