Plotly - Distplots Density Plot และ Error Bar Plot
ในบทนี้เราจะทำความเข้าใจเกี่ยวกับระยะห่างพล็อตความหนาแน่นและพล็อตแถบข้อผิดพลาดโดยละเอียด ให้เราเริ่มต้นด้วยการเรียนรู้เกี่ยวกับ distplots
Distplots
โรงงานผลิตตัวเลขดิสพล็อตแสดงการรวมกันของการแสดงข้อมูลเชิงสถิติของข้อมูลตัวเลขเช่นฮิสโตแกรมการประมาณความหนาแน่นของเคอร์เนลหรือเส้นโค้งปกติและพล็อตพรม
Distplot สามารถประกอบด้วยส่วนประกอบ 3 ส่วนต่อไปนี้ทั้งหมดหรือส่วนใดส่วนหนึ่ง -
- histogram
- เส้นโค้ง: (a) การประมาณความหนาแน่นของเคอร์เนลหรือ (b) เส้นโค้งปกติและ
- พล็อตพรม
figure_factory โมดูลมี create_distplot() ฟังก์ชันที่ต้องการพารามิเตอร์บังคับที่เรียกว่า hist_data
โค้ดต่อไปนี้สร้าง distplot พื้นฐานที่ประกอบด้วยฮิสโตแกรมพล็อต kde และพล็อตพรม
x = np.random.randn(1000)
hist_data = [x]
group_labels = ['distplot']
fig = ff.create_distplot(hist_data, group_labels)
iplot(fig)
ผลลัพธ์ของรหัสที่กล่าวถึงข้างต้นมีดังนี้ -
พล็อตความหนาแน่น
พล็อตความหนาแน่นคือฮิสโตแกรมเวอร์ชันต่อเนื่องที่ราบรื่นและต่อเนื่องโดยประมาณจากข้อมูล รูปแบบการประมาณค่าที่พบบ่อยที่สุดเรียกว่าkernel density estimation (KDE). ในวิธีนี้เส้นโค้งต่อเนื่อง (เคอร์เนล) จะถูกวาดขึ้นที่จุดข้อมูลแต่ละจุดและจากนั้นเส้นโค้งทั้งหมดเหล่านี้จะถูกรวมเข้าด้วยกันเพื่อทำการประมาณค่าความหนาแน่นแบบเรียบเพียงครั้งเดียว
create_2d_density() ฟังก์ชันในโมดูล plotly.figure_factory._2d_density ส่งคืนวัตถุรูปสำหรับพล็อตความหนาแน่น 2D
รหัสต่อไปนี้ใช้เพื่อสร้างพล็อตความหนาแน่น 2D บนข้อมูลฮิสโตแกรม
t = np.linspace(-1, 1.2, 2000)
x = (t**3) + (0.3 * np.random.randn(2000))
y = (t**6) + (0.3 * np.random.randn(2000))
fig = ff.create_2d_density( x, y)
iplot(fig)
ด้านล่างนี้เป็นผลลัพธ์ของรหัสที่ระบุข้างต้น
พล็อตแถบข้อผิดพลาด
แถบข้อผิดพลาดคือการแสดงข้อผิดพลาดหรือความไม่แน่นอนในข้อมูลแบบกราฟิกและช่วยในการตีความที่ถูกต้อง เพื่อวัตถุประสงค์ทางวิทยาศาสตร์การรายงานข้อผิดพลาดมีความสำคัญอย่างยิ่งในการทำความเข้าใจข้อมูลที่กำหนด
แถบข้อผิดพลาดมีประโยชน์ต่อผู้แก้ปัญหาเนื่องจากแถบข้อผิดพลาดแสดงความเชื่อมั่นหรือความแม่นยำในชุดการวัดหรือค่าที่คำนวณได้
แถบข้อผิดพลาดส่วนใหญ่แสดงถึงช่วงและส่วนเบี่ยงเบนมาตรฐานของชุดข้อมูล สามารถช่วยให้เห็นภาพว่าข้อมูลกระจายไปรอบ ๆ ค่าเฉลี่ยอย่างไร แถบข้อผิดพลาดสามารถสร้างได้ในหลาย ๆ แปลงเช่นพล็อตแท่งพล็อตเส้นพล็อตกระจายเป็นต้น
go.Scatter() มีฟังก์ชัน error_x และ error_y คุณสมบัติที่ควบคุมวิธีสร้างแถบข้อผิดพลาด
visible (boolean) - กำหนดว่าจะมองเห็นแถบข้อผิดพลาดชุดนี้หรือไม่
คุณสมบัติประเภทมีค่าที่เป็นไปได้ "percent"|"constant"|"sqrt"|"data”. ตั้งกฎที่ใช้ในการสร้างแถบข้อผิดพลาด หากเป็น "เปอร์เซ็นต์" ความยาวของแท่งจะสอดคล้องกับเปอร์เซ็นต์ของข้อมูลที่อยู่เบื้องหลัง กำหนดเปอร์เซ็นต์นี้เป็น "ค่า" ถ้า "sqrt" ความยาวของแท่งจะตรงกับกำลังสองของข้อมูลที่อยู่ ถ้า "data" ความยาวของแท่งจะถูกกำหนดด้วยชุดข้อมูล "array"
symmetricคุณสมบัติอาจเป็นจริงหรือเท็จ ดังนั้นแถบข้อผิดพลาดจะมีความยาวเท่ากันทั้งสองทิศทางหรือไม่ (บน / ล่างสำหรับแถบแนวตั้งซ้าย / ขวาสำหรับแถบแนวนอน
array- ตั้งค่าข้อมูลที่สอดคล้องกับความยาวของแถบข้อผิดพลาดแต่ละอัน มีการพล็อตค่าที่สัมพันธ์กับข้อมูลพื้นฐาน
arrayminus - ตั้งค่าข้อมูลที่สอดคล้องกับความยาวของแถบข้อผิดพลาดแต่ละแถบในทิศทางด้านล่าง (ซ้าย) สำหรับแถบแนวตั้ง (แนวนอน) ค่าจะถูกพล็อตโดยสัมพันธ์กับข้อมูลพื้นฐาน
โค้ดต่อไปนี้แสดงแถบข้อผิดพลาดแบบสมมาตรบนพล็อตกระจาย -
trace = go.Scatter(
x = [0, 1, 2], y = [6, 10, 2],
error_y = dict(
type = 'data', # value of error bar given in data coordinates
array = [1, 2, 3], visible = True)
)
data = [trace]
layout = go.Layout(title = 'Symmetric Error Bar')
fig = go.Figure(data = data, layout = layout)
iplot(fig)
ด้านล่างนี้เป็นผลลัพธ์ของรหัสที่ระบุไว้ด้านบน
พล็อตข้อผิดพลาดไม่สมมาตรแสดงผลโดยสคริปต์ต่อไปนี้ -
trace = go.Scatter(
x = [1, 2, 3, 4],
y =[ 2, 1, 3, 4],
error_y = dict(
type = 'data',
symmetric = False,
array = [0.1, 0.2, 0.1, 0.1],
arrayminus = [0.2, 0.4, 1, 0.2]
)
)
data = [trace]
layout = go.Layout(title = 'Asymmetric Error Bar')
fig = go.Figure(data = data, layout = layout)
iplot(fig)
ผลลัพธ์เดียวกันเป็นไปตามที่ระบุด้านล่าง -