Seaborn - การกระจายการสังเกตการณ์

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

พล็อตกล่อง

Boxplot เป็นวิธีที่สะดวกในการแสดงภาพการกระจายข้อมูลผ่านควอไทล์

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

ตัวอย่าง

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()

เอาต์พุต

จุดบนพล็อตระบุค่าผิดปกติ

แปลงไวโอลิน

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

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

ตัวอย่าง

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()

เอาต์พุต

ค่าควอไทล์และมัสสุจากบ็อกซ์พล็อตจะแสดงอยู่ภายในไวโอลิน เนื่องจากพล็อตไวโอลินใช้ KDE ส่วนที่กว้างขึ้นของไวโอลินจะบ่งบอกถึงความหนาแน่นที่สูงขึ้นและพื้นที่แคบแสดงถึงความหนาแน่นที่ค่อนข้างต่ำ ช่วง Inter-Quartile ใน boxplot และส่วนที่มีความหนาแน่นสูงกว่าใน kde จะตกอยู่ในภูมิภาคเดียวกันของแต่ละประเภทของไวโอลิน

พล็อตด้านบนแสดงการแจกแจงของ total_bill ในสี่วันของสัปดาห์ แต่นอกเหนือจากนั้นหากเราต้องการดูว่าการกระจายมีพฤติกรรมอย่างไรในเรื่องเพศให้สำรวจในตัวอย่างด้านล่าง

ตัวอย่าง

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()

เอาต์พุต

ปัจจุบันเราสามารถเห็นพฤติกรรมการใช้จ่ายระหว่างเพศชายและเพศหญิงได้อย่างชัดเจน เราสามารถพูดได้ง่ายๆว่าผู้ชายทำเงินได้มากกว่าผู้หญิงโดยดูที่พล็อต

และหากตัวแปรสีมีเพียงสองคลาสเราสามารถตกแต่งพล็อตให้สวยงามโดยการแยกไวโอลินแต่ละตัวออกเป็นสองตัวแทนที่จะเป็นไวโอลินสองตัวในวันที่กำหนด ส่วนใดส่วนหนึ่งของไวโอลินอ้างถึงแต่ละคลาสในตัวแปร hue

ตัวอย่าง

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()

เอาต์พุต