วิธีเพิ่มแถบข้อผิดพลาดลงในแผนภูมิใน python
บ่อยครั้ง คุณอาจต้องการเพิ่ม แถบค่าคลาดเคลื่อนลง ในกราฟใน Python เพื่อจับความไม่แน่นอนเกี่ยวกับการวัดหรือค่าที่คำนวณได้ โชคดีที่ทำได้ง่ายโดยใช้ไลบรารี matplotlib
บทช่วยสอนนี้จะอธิบายวิธีเพิ่มแถบข้อผิดพลาดให้กับแผนภูมิแท่งและแผนภูมิเส้นใน Python
แถบข้อผิดพลาดในแผนภูมิแท่ง
สมมติว่าเรามีชุดข้อมูล 10 ค่าใน Python ต่อไปนี้:
import numpy as np import matplotlib.pyplot as plt #define dataset data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20]
ในการสร้างแผนภูมิแท่งที่มีแถบค่าคลาดเคลื่อนสำหรับชุดข้อมูลนี้ เราสามารถตั้งค่าความกว้างของแถบค่าคลาดเคลื่อนเป็น ค่าคลาดเคลื่อนมาตรฐาน ซึ่งจะคำนวณ
ข้อผิดพลาดมาตรฐาน = s / √n
ทอง:
- s: ค่าเบี่ยงเบนมาตรฐานตัวอย่าง
- n: ขนาดตัวอย่าง
รหัสต่อไปนี้แสดงวิธีการคำนวณข้อผิดพลาดมาตรฐานสำหรับตัวอย่างนี้:
#calculate standard error std_error = np.std(data, ddof=1) / np.sqrt(len(data)) #view standard error std_error 1.78
สุดท้ายนี้ เราสามารถสร้างแผนภูมิแท่งโดยใช้แถบข้อผิดพลาดที่มีความกว้างเท่ากับข้อผิดพลาดมาตรฐาน:
#define chart fig, ax = plt.subplots() #create chart ax.bar(x=np.arange(len(data)), #x-coordinates of bars height=data, #height of bars yerr=std_error, #error bar width capsize=4) #length of error bar caps
ข้อผิดพลาดมาตรฐานกลายเป็น 1.78 นี่คือความกว้างของแถบค่าคลาดเคลื่อนที่ขยายไปในทิศทางใดทิศทางหนึ่งจากจุดประมาณค่าบนกราฟ ตัวอย่างเช่น ค่าของแท่งแรกในแผนภูมิคือ 4 จึงมีแถบข้อผิดพลาดที่ขยายจาก:
- ช่วงล่าง: 4 – 178 = 2.22
- บนสุด: 4 + 1.78 = 5.78
แถบข้อผิดพลาดแต่ละแถบในแผนภูมิมีความกว้างเท่ากัน
แถบข้อผิดพลาดในแผนภูมิเส้น
รหัสต่อไปนี้แสดงวิธีการสร้างแผนภูมิเส้นที่มีแถบค่าคลาดเคลื่อนสำหรับชุดข้อมูลเดียวกัน:
import numpy as np import matplotlib.pyplot as plt #define data data = [4, 6, 6, 8, 9, 14, 16, 16, 17, 20] #define x and y coordinates x = np.arange(len(data)) y = data #create line chart with error bars fig, ax = plt.subplots() ax.errorbar(x, y, yerr=std_error, capsize=4)
โปรดทราบว่าอาร์กิวเมนต์ yerr บอกให้ Python สร้างแถบข้อผิดพลาดแนวตั้ง เราสามารถใช้แถบแนวตั้งแนวนอนแทนโดยใช้อาร์กิวเมนต์ xerr :
#create line chart with horizontal error bars fig, ax = plt.subplots() ax.errorbar(x, y, xerr =std_error, capsize=4)
คุณสามารถค้นหาบทช่วยสอน Python เพิ่มเติมได้ ที่นี่