You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/th/3-Data-Visualization/R/12-visualization-relationships
leestott b3d803186c
🌐 Update translations via Co-op Translator
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 4 weeks ago

README.md

การแสดงความสัมพันธ์: เรื่องราวของน้ำผึ้ง 🍯

 สเก็ตโน้ตโดย (@sketchthedocs)
การแสดงความสัมพันธ์ - สเก็ตโน้ตโดย @nitya

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

ชุดข้อมูลนี้มีประมาณ 600 รายการ แสดงการผลิตน้ำผึ้งในหลายรัฐของสหรัฐฯ ตัวอย่างเช่น คุณสามารถดูจำนวนรังผึ้ง ผลผลิตต่อรัง การผลิตรวม สต็อก ราคาเฉลี่ยต่อปอนด์ และมูลค่าของน้ำผึ้งที่ผลิตในแต่ละรัฐตั้งแต่ปี 1998-2012 โดยมีหนึ่งแถวต่อปีสำหรับแต่ละรัฐ

จะน่าสนใจมากหากแสดงภาพความสัมพันธ์ระหว่างการผลิตน้ำผึ้งในแต่ละปีของรัฐหนึ่ง ๆ กับราคาน้ำผึ้งในรัฐนั้น หรืออาจแสดงความสัมพันธ์ระหว่างผลผลิตน้ำผึ้งต่อรังในแต่ละรัฐ ช่วงเวลานี้ครอบคลุมเหตุการณ์ 'CCD' หรือ 'Colony Collapse Disorder' ที่เริ่มปรากฏในปี 2006 (http://npic.orst.edu/envir/ccd.html) ซึ่งเป็นชุดข้อมูลที่น่าศึกษาอย่างยิ่ง 🐝

แบบทดสอบก่อนเรียน

ในบทเรียนนี้ คุณสามารถใช้ ggplot2 ซึ่งคุณเคยใช้มาก่อน เป็นไลบรารีที่ดีในการแสดงภาพความสัมพันธ์ระหว่างตัวแปร โดยเฉพาะการใช้ geom_point และฟังก์ชัน qplot ของ ggplot2 ที่ช่วยให้สร้าง scatter plots และ line plots เพื่อแสดง 'ความสัมพันธ์ทางสถิติ' ได้อย่างรวดเร็ว ซึ่งช่วยให้นักวิทยาศาสตร์ข้อมูลเข้าใจความสัมพันธ์ระหว่างตัวแปรได้ดียิ่งขึ้น

Scatterplots

ใช้ scatterplot เพื่อแสดงให้เห็นว่าราคาน้ำผึ้งเปลี่ยนแปลงไปอย่างไรในแต่ละปีในแต่ละรัฐ ggplot2 โดยใช้ ggplot และ geom_point สามารถจัดกลุ่มข้อมูลของรัฐและแสดงจุดข้อมูลสำหรับข้อมูลเชิงหมวดหมู่และข้อมูลเชิงตัวเลขได้อย่างสะดวก

เริ่มต้นด้วยการนำเข้าข้อมูลและ Seaborn:

honey=read.csv('../../data/honey.csv')
head(honey)

คุณจะสังเกตเห็นว่าข้อมูลน้ำผึ้งมีคอลัมน์ที่น่าสนใจหลายคอลัมน์ รวมถึงปีและราคาต่อปอนด์ ลองสำรวจข้อมูลนี้โดยจัดกลุ่มตามรัฐในสหรัฐฯ:

state numcol yieldpercol totalprod stocks priceperlb prodvalue year
AL 16000 71 1136000 159000 0.72 818000 1998
AZ 55000 60 3300000 1485000 0.64 2112000 1998
AR 53000 65 3445000 1688000 0.59 2033000 1998
CA 450000 83 37350000 12326000 0.62 23157000 1998
CO 27000 72 1944000 1594000 0.7 1361000 1998
FL 230000 98 22540000 4508000 0.64 14426000 1998

สร้าง scatterplot พื้นฐานเพื่อแสดงความสัมพันธ์ระหว่างราคาต่อปอนด์ของน้ำผึ้งกับรัฐที่ผลิตน้ำผึ้ง ตั้งค่าแกน y ให้สูงพอที่จะแสดงข้อมูลของทุกรัฐ:

library(ggplot2)
ggplot(honey, aes(x = priceperlb, y = state)) +
  geom_point(colour = "blue")

scatterplot 1

ตอนนี้ แสดงข้อมูลเดียวกันด้วยโทนสีของน้ำผึ้งเพื่อแสดงให้เห็นว่าราคาเปลี่ยนแปลงไปอย่างไรในแต่ละปี คุณสามารถทำได้โดยเพิ่มพารามิเตอร์ 'scale_color_gradientn' เพื่อแสดงการเปลี่ยนแปลงในแต่ละปี:

เรียนรู้เพิ่มเติมเกี่ยวกับ scale_color_gradientn - ลองใช้โทนสีรุ้งที่สวยงาม!

ggplot(honey, aes(x = priceperlb, y = state, color=year)) +
  geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7))

scatterplot 2

ด้วยการเปลี่ยนโทนสีนี้ คุณจะเห็นได้ชัดเจนว่ามีการเปลี่ยนแปลงอย่างต่อเนื่องในราคาน้ำผึ้งต่อปอนด์ในแต่ละปี หากคุณดูตัวอย่างข้อมูลในชุดข้อมูลเพื่อยืนยัน (เลือกดูรัฐหนึ่ง เช่น รัฐแอริโซนา) คุณจะเห็นรูปแบบการเพิ่มขึ้นของราคาปีต่อปี โดยมีข้อยกเว้นบางประการ:

state numcol yieldpercol totalprod stocks priceperlb prodvalue year
AZ 55000 60 3300000 1485000 0.64 2112000 1998
AZ 52000 62 3224000 1548000 0.62 1999000 1999
AZ 40000 59 2360000 1322000 0.73 1723000 2000
AZ 43000 59 2537000 1142000 0.72 1827000 2001
AZ 38000 63 2394000 1197000 1.08 2586000 2002
AZ 35000 72 2520000 983000 1.34 3377000 2003
AZ 32000 55 1760000 774000 1.11 1954000 2004
AZ 36000 50 1800000 720000 1.04 1872000 2005
AZ 30000 65 1950000 839000 0.91 1775000 2006
AZ 30000 64 1920000 902000 1.26 2419000 2007
AZ 25000 64 1600000 336000 1.26 2016000 2008
AZ 20000 52 1040000 562000 1.45 1508000 2009
AZ 24000 77 1848000 665000 1.52 2809000 2010
AZ 23000 53 1219000 427000 1.55 1889000 2011
AZ 22000 46 1012000 253000 1.79 1811000 2012

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

ggplot(honey, aes(x = priceperlb, y = state)) +
  geom_point(aes(size = year),colour = "blue") +
  scale_size_continuous(range = c(0.25, 3))

คุณจะเห็นว่าขนาดของจุดเพิ่มขึ้นเรื่อย ๆ

scatterplot 3

นี่เป็นกรณีง่าย ๆ ของอุปสงค์และอุปทานหรือไม่? เนื่องจากปัจจัยต่าง ๆ เช่น การเปลี่ยนแปลงสภาพภูมิอากาศและการล่มสลายของรังผึ้ง มีน้ำผึ้งน้อยลงสำหรับการซื้อในแต่ละปี และทำให้ราคาสูงขึ้น?

เพื่อค้นหาความสัมพันธ์ระหว่างตัวแปรบางตัวในชุดข้อมูลนี้ ลองสำรวจกราฟเส้น

กราฟเส้น

คำถาม: มีการเพิ่มขึ้นของราคาน้ำผึ้งต่อปอนด์ในแต่ละปีอย่างชัดเจนหรือไม่? คุณสามารถค้นพบได้ง่ายที่สุดโดยการสร้างกราฟเส้นเดี่ยว:

qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb")

คำตอบ: ใช่ โดยมีข้อยกเว้นบางประการในปี 2003:

line chart 1

คำถาม: ในปี 2003 เราเห็นการเพิ่มขึ้นของปริมาณน้ำผึ้งหรือไม่? หากคุณดูการผลิตรวมในแต่ละปีล่ะ?

qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod")

line chart 2

คำตอบ: ไม่จริง หากคุณดูการผลิตรวม ดูเหมือนว่าจะเพิ่มขึ้นในปีนั้น แต่โดยทั่วไปแล้วปริมาณน้ำผึ้งที่ผลิตลดลงในช่วงปีเหล่านี้

คำถาม: ในกรณีนั้น อะไรที่อาจทำให้เกิดการเพิ่มขึ้นของราคาน้ำผึ้งในปี 2003?

เพื่อค้นหาสิ่งนี้ คุณสามารถสำรวจ facet grid

Facet grids

Facet grids ใช้หนึ่ง facet ของชุดข้อมูลของคุณ (ในกรณีนี้ คุณสามารถเลือก 'ปี' เพื่อหลีกเลี่ยงการสร้าง facet มากเกินไป) Seaborn สามารถสร้างกราฟสำหรับแต่ละ facet ของพิกัด x และ y ที่คุณเลือกเพื่อการเปรียบเทียบที่ง่ายขึ้น ปี 2003 โดดเด่นในประเภทการเปรียบเทียบนี้หรือไม่?

สร้าง facet grid โดยใช้ facet_wrap ตามที่ เอกสาร ggplot2 แนะนำ

ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + 
  geom_line() + facet_wrap(vars(year))

ในภาพนี้ คุณสามารถเปรียบเทียบผลผลิตต่อรังและจำนวนรังในแต่ละปี โดยจัดเรียง wrap เป็น 3 คอลัมน์:

facet grid

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

กราฟเส้นคู่

ลองใช้กราฟเส้นหลายเส้นโดยซ้อนกราฟเส้นสองกราฟเข้าด้วยกัน โดยใช้ฟังก์ชัน par และ plot ของ R เราจะวางปีไว้บนแกน x และแสดงแกน y สองแกน โดยแสดงผลผลิตต่อรังและจำนวนรังที่ซ้อนกัน:

par(mar = c(5, 4, 4, 4) + 0.3)              
plot(honey$year, honey$numcol, pch = 16, col = 2,type="l")              
par(new = TRUE)                             
plot(honey$year, honey$yieldpercol, pch = 17, col = 3,              
     axes = FALSE, xlab = "", ylab = "",type="l")
axis(side = 4, at = pretty(range(y2)))      
mtext("colony yield", side = 4, line = 3)   

superimposed plots

แม้ว่าไม่มีสิ่งใดที่โดดเด่นในปี 2003 แต่ก็ช่วยให้เราจบบทเรียนนี้ด้วยข่าวดีเล็กน้อย: แม้ว่าจำนวนรังจะลดลงโดยรวม แต่จำนวนรังก็เริ่มคงที่ แม้ว่าผลผลิตต่อรังจะลดลง

สู้ต่อไปนะ ผึ้งน้อย!

🐝❤️

🚀 ความท้าทาย

ในบทเรียนนี้ คุณได้เรียนรู้เพิ่มเติมเกี่ยวกับการใช้ scatterplots และ line grids รวมถึง facet grids ท้าทายตัวเองด้วยการสร้าง facet grid โดยใช้ชุดข้อมูลอื่น อาจเป็นชุดข้อมูลที่คุณเคยใช้ก่อนหน้านี้ในบทเรียนเหล่านี้ สังเกตว่าต้องใช้เวลานานแค่ไหนในการสร้าง และคุณต้องระมัดระวังเกี่ยวกับจำนวน grids ที่คุณต้องสร้างด้วยเทคนิคเหล่านี้

แบบทดสอบหลังเรียน

ทบทวนและศึกษาด้วยตนเอง

กราฟเส้นสามารถเรียบง่ายหรือซับซ้อนได้ ลองอ่านเพิ่มเติมใน เอกสาร ggplot2 เกี่ยวกับวิธีต่าง ๆ ที่คุณสามารถสร้างกราฟเส้น ลองปรับปรุงกราฟเส้นที่คุณสร้างในบทเรียนนี้ด้วยวิธีอื่น ๆ ที่ระบุไว้ในเอกสาร

งานที่ได้รับมอบหมาย

สำรวจรังผึ้ง


ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้