การสร้างภาพข้อมูลใน Python ด้วย Seaborn

หลาม การแสดงข้อมูล การแสดงภาพ ท้องทะเล
การสร้างภาพข้อมูลใน Python ด้วย Seaborn cover image

ปัจจุบัน ทรัพยากรที่มีค่าที่สุดในโลกไม่ใช่น้ำมันอีกต่อไป แต่เป็นข้อมูล การแสดงภาพกำลังกลายเป็นเครื่องมือที่สำคัญมากขึ้นในการทำความเข้าใจแถวข้อมูลนับพันล้านแถว ด้วยการแปลข้อมูลเป็นการแสดงภาพกราฟิกที่ตีความได้ง่าย การแสดงภาพข้อมูลจึงช่วยในการเล่าเรื่องของข้อมูลด้วยการเน้นข้อมูล รูปแบบ และค่าผิดปกติที่เกี่ยวข้อง อย่างไรก็ตาม ข้อมูลและกราฟิกจะต้องทำงานร่วมกัน ซึ่งเป็นศิลปะแห่งการผสมผสานการวิเคราะห์ที่ยอดเยี่ยมเข้ากับการเล่าเรื่องที่ยอดเยี่ยม ในบล็อกโพสต์นี้ เราจะแสดงให้คุณเห็น "Sea Born" ซึ่งเป็นหนึ่งในเครื่องมือสร้างภาพที่มีชื่อเสียงที่สุดซึ่งเขียนด้วยภาษา Python

เครื่องมือแสดงภาพ

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

ซีบอร์น

Seaborn เป็นไลบรารีการแสดงภาพข้อมูล Python ที่อิงจาก matplotlib มันมีอินเทอร์เฟซระดับสูงสำหรับการวาดภาพกราฟิกทางสถิติที่น่าสนใจและให้ข้อมูล

ฟังก์ชั่นการวางแผนท้องทะเล:

ในทะเลเรามีแปลง 3 ประเภท

  • แปลงหมวดหมู่

  • แปลงจำหน่าย

  • แผนการเชิงสัมพันธ์

แปลงหมวดหมู่

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

จำนวนแปลง:

  • แสดงจำนวนการสังเกตของแต่ละหมวดหมู่จากตัวแปรหมวดหมู่ เราเพียงแค่นับจำนวนการสังเกตของตัวแปรแต่ละหมวดหมู่
seaborn.catplot(kind = 'count',
                data = dataset,
                x    = 'variable')

Count plot

เนื้อที่บาร์:

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

  • แนวโน้มอาจเป็นค่าเฉลี่ย ความแปรปรวน หรือคุณสามารถส่งผ่านฟังก์ชันที่กำหนดเองบางอย่างได้...

seaborn.catplot(kind = 'bar',**data = dataset,**
                x    = 'variable_1',**y    = 'variable_2',**
                estimator = np.mean)**

Bar Plot

โครงเรื่อง:

  • Strip plot เป็นหนึ่งในพล็อตที่ง่ายที่สุดและตรงไปตรงมาที่สุดในการแสดงข้อมูล เราเพียงแค่วาดจุดที่แสดงค่าของตัวแปรต่อเนื่อง สำหรับแต่ละประเภทของตัวแปร 1 เราจะวาดค่าของตัวแปร 2

Strip Plot

seaborn.catplot(kind = 'strip',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                jitter = 0.15)

พล็อตฝูง:

  • Swarm plot นั้นคล้ายคลึงกับ strip plot มาก เนื่องจากมีฟังก์ชันการทำงานที่เหมือนกันทุกประการ ข้อแตกต่างเพียงอย่างเดียวคือวิธีการแสดงคะแนน ขณะอยู่ในสตริปพล็อต จุดข้อมูลอาจทับซ้อนกันเนื่องจากวางแบบสุ่มบนแกน x ในกราฟแบบฝูง เราตรวจสอบให้แน่ใจว่าจุดต่างๆ จะไม่ทับซ้อนกันโดยการซ้อนกัน

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

Swarm Plot

seaborn.catplot(kind = 'swarm',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

โครงกล่อง:

  • Box plot ใช้เพื่อแสดงการกระจายของตัวแปรต่อเนื่องสำหรับตัวแปรหมวดหมู่แต่ละประเภท แม้ว่าจะค่อนข้างง่าย แต่ก็ให้ข้อมูลมากมาย:

  • ค่าของควอไทล์:

กล่องมีเส้นแนวนอนอยู่ข้างในซึ่งแสดงถึงค่ามัธยฐาน เส้นแนวนอนด้านบนคือควอไทล์บน ส่วนเส้นแนวนอนด้านล่างคือควอร์ไทล์ล่าง

  • ค่าผิดปกติ:

โปรดสังเกตว่ามีจุดบางจุดอยู่นอกกรอบ จุดเหล่านี้แสดงถึงค่าผิดปกติ

Box Plot

seaborn.catplot(kind = 'box',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

เนื้อเรื่องไวโอลิน:

แทนที่จะพล็อตกล่องแจกจ่าย พล็อตไวโอลินจะพล็อตการกระจายที่แท้จริงของตัวแปรต่อเนื่องสำหรับตัวแปรหมวดหมู่แต่ละประเภทโดยใช้ KDE ( Kernel Density Estimation )

Violin Plot

seaborn.catplot(kind = 'violin',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

แปลงจำหน่าย:

เราใช้ฟังก์ชันการวางแผนการกระจายของสัตว์ทะเลเพื่อแสดงภาพการกระจายตัวของตัวแปรต่อเนื่อง

โครงเรื่อง:

โครงเรื่องฮิสต์แสดงถึงการกระจายตัวของตัวแปรต่อเนื่องโดยใช้ถังเก็บ

Hist Plot

seaborn.distplot(kind = 'hist',
                 data = dataset,
                 x    = 'variable',
                 bins = 20)

โครงเรื่องของ KDE:

พล็อต Kde แสดงถึงการกระจายข้อมูลตามจริง โดยใช้การประมาณความหนาแน่นของเคอร์เนล

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable')

นอกจากนี้ยังสามารถใช้เพื่อแสดงการกระจายตัวแบบไบวาเรียตของตัวแปรต่อเนื่องสองตัวได้ด้วย

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable_1',
                 y    = 'variable_2')

โครงเรื่อง ECDF:

พล็อต ECDF แสดงถึงการกระจายตัวสะสมเชิงประจักษ์ของตัวแปรต่อเนื่อง

ECDF Plot

seaborn.distplot(kind = 'ecdf',
                 data = dataset,
                 x    = 'variable')

โครงเรื่องที่เกี่ยวข้อง:

เราใช้ฟังก์ชันการวางแผนเชิงสัมพันธ์ของสัตว์ทะเลเพื่อแสดงความสัมพันธ์ระหว่างตัวแปรต่อเนื่อง

แผนภูมิกระจาย:

  • แสดงความสัมพันธ์ระหว่างตัวแปรต่อเนื่อง 2 ตัว เพียงแค่พล็อตจุดข้อมูลทั้งหมด

Scatter Plot

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

โครงเรื่อง:

  • แสดงถึงความสัมพันธ์ระหว่างตัวแปรในรูปแบบฟังก์ชันต่อเนื่อง

Line Plot

seaborn.relplot(kind = 'line',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

ฟังก์ชันเพิ่มเติม:

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

สี:

  • การใช้สีเราสามารถแนะนำตัวแปรตัวที่ 3 ที่เป็นหมวดหมู่สำหรับการแสดงภาพของเราโดยใช้การเข้ารหัสสี หมายความว่าจุดข้อมูลที่อยู่ในหมวดหมู่เดียวกันของตัวแปรตัวที่ 3 นี้จะมีสีเดียวกัน

Hue

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3')

ขนาด:

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

Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                size = 'variable_3',
                sizes = [50, 100])

สไตล์:

  • เกือบจะเหมือนกับ Hue และ Size ซึ่งหมายความว่าจุดข้อมูลที่อยู่ในหมวดหมู่เดียวกันของตัวแปรตัวที่ 3 จะมีสไตล์ที่เป็นเอกลักษณ์เหมือนกัน รูปแบบจุดอาจเป็นจุด ดาว กากบาท สามเหลี่ยม … เราเรียกว่าเครื่องหมาย

Style

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                style = 'variable_3',
                markers = ['X', '*'])

นอกจากนี้เรายังสามารถแนะนำตัวแปรหมวดหมู่ใหม่โดยใช้พล็อตหลายรายการ แต่ละพล็อตอยู่ในหมวดหมู่จากตัวแปรหมวดหมู่หมวดหมู่:

คอล:

จะสร้างตัวเลขจำนวนมากในแนวนอนตามประเภทของตัวแปรที่ 3

Col

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                col  = 'variable_3')

แถว:

จะสร้างตัวเลขจำนวนมากในแนวตั้งตามประเภทของตัวแปรที่ 3

Row

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                row  = 'variable_3')

นอกจากนี้เรายังสามารถใช้ Hue และ Size ในพล็อตเดียวกัน เพื่อแสดงตัวแปร 4 ตัว หรือแม้แต่ Hue และ Style และ Col เพื่อใช้ 5 ตัวแปรในพล็อตเดียวกัน ! เราสามารถใช้ตัวแปรได้มากถึง 7 ตัว (ตัวแปร 1, ตัวแปร 2, Hue, ขนาด, สไตล์, Col, แถว) ในพล็อตเดียวกัน แต่มันจะทำให้เรามีพล็อตที่มีค่าใช้จ่ายสูงซึ่งยุ่งมากและยากต่อการตีความอย่างมาก บางครั้งก็ไม่ ข้อมูลเลย

Hue & Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3',
                size = 'variable_4')

บทสรุป:

ในโพสต์นี้ เราได้เรียนรู้เกี่ยวกับสัตว์ทะเล ซึ่งมี 3 ประเภทของฟังก์ชันการวางแผน: การแบ่งหมวดหมู่ การแจกแจง และพล็อตเชิงสัมพันธ์ และเราได้อธิบายฟังก์ชันการวางแผนแต่ละฟังก์ชันสำหรับแต่ละหมวดหมู่ ควบคู่ไปกับโค้ด python

ลองดู Data Science Bootcamp ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับหัวข้อนี้


Career Services background pattern

บริการด้านอาชีพ

Contact Section background image

มาติดต่อกันกันเถอะ

Code Labs Academy © 2024 สงวนลิขสิทธิ์.