ข้ามไปยังเนื้อหา

แถบความคลาดเคลื่อนด้วย pgfplots

เพิ่ม error bars/.cd, y dir=both, y explicit ในตัวเลือกของ \addplot แล้วเขียนค่าความคลาดเคลื่อนหลังแต่ละจุดเป็น +- (0, error) หรืออ่านค่าจากคอลัมน์ตารางด้วย y error=

ความคลาดเคลื่อนที่เขียนพร้อมจุด

แถบความคลาดเคลื่อนเปิดใช้ทีละ \addplot คีย์หลัง error bars/.cd บอกว่าจะวาดในทิศทางใดและค่ามาจากที่ใด เมื่อใช้ y explicit แต่ละจุดจะมีค่าความคลาดเคลื่อนของตัวเองหลัง +-

ความคลาดเคลื่อน y แบบสมมาตรจากพิกัด

LaTeXส่วนนำ: \usepackage{pgfplots}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \begin{axis}[xlabel={Length (m)}, ylabel={Period (s)}]
    \addplot+[error bars/.cd, y dir=both, y explicit]
      coordinates {
        (0.2,0.90) +- (0,0.05)
        (0.4,1.27) +- (0,0.04)
        (0.6,1.55) +- (0,0.06)
        (0.8,1.80) +- (0,0.05)
        (1.0,2.01) +- (0,0.07)
      };
  \end{axis}
\end{tikzpicture}

ใน +- (ex, ey) ตัวเลขแรกคือความคลาดเคลื่อนของ x และตัวที่สองคือของ y ระบบจะวาดเฉพาะทิศทางที่คุณเปิดใช้

ความคลาดเคลื่อนจากคอลัมน์ตาราง

เมื่อข้อมูลเป็นตาราง ให้ระบุคอลัมน์ความคลาดเคลื่อนด้วย y error= วิธีเดียวกันใช้ได้กับไฟล์ เช่น table[x=t, y=v, y error=dv, col sep=comma] {data.csv}

ความคลาดเคลื่อน y ที่อ่านจากคอลัมน์

LaTeXส่วนนำ: \usepackage{pgfplots}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \begin{axis}[xlabel={Dose}, ylabel={Response}, ymin=0]
    \addplot+[only marks, error bars/.cd, y dir=both, y explicit]
      table[x=dose, y=mean, y error=sd] {
        dose mean sd
        1    2.1  0.3
        2    3.4  0.4
        4    5.0  0.6
        8    6.2  0.5
      };
  \end{axis}
\end{tikzpicture}

ความคลาดเคลื่อนด้านเดียวและค่าคงที่

y dir=plus หรือ y dir=minus วาดเฉพาะครึ่งบนหรือครึ่งล่าง แทนที่จะระบุค่าเอง y fixed=0.2 ให้ทุกจุดมีความคลาดเคลื่อนเท่ากัน และ y fixed relative=0.1 ให้ความคลาดเคลื่อนเท่ากับ 10% ของค่าของจุดนั้น

ความคลาดเคลื่อนด้านบนเท่านั้น และความคลาดเคลื่อนสัมพัทธ์

LaTeXส่วนนำ: \usepackage{pgfplots}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \begin{axis}[ymin=0, legend pos=north west]
    \addplot+[error bars/.cd, y dir=plus, y fixed=0.4]
      coordinates {(1,2) (2,3) (3,3.5) (4,4.4)};
    \addplot+[error bars/.cd, y dir=both, y fixed relative=0.1]
      coordinates {(1,1) (2,1.6) (3,2.2) (4,2.5)};
    \legend{fixed $\pm 0.4$ (upper), relative 10\%}
  \end{axis}
\end{tikzpicture}
จัดหน้าโดย Scissor LaTeX: ความคลาดเคลื่อนด้านบนเท่านั้น และความคลาดเคลื่อนสัมพัทธ์

ความคลาดเคลื่อนด้านบนและด้านล่างต่างกัน

เขียน += (0, up) สำหรับความคลาดเคลื่อนด้านบน และ -= (0, down) สำหรับด้านล่าง

ความคลาดเคลื่อนแบบไม่สมมาตร

LaTeXส่วนนำ: \usepackage{pgfplots}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \begin{axis}[width=7cm, height=5cm, xmin=0.5, xmax=3.5]
    \addplot+[only marks, error bars/.cd, y dir=both, y explicit]
      coordinates {
        (1,2.0) += (0,0.5) -= (0,0.1)
        (2,3.0) += (0,0.2) -= (0,0.6)
        (3,2.6) += (0,0.3) -= (0,0.3)
      };
  \end{axis}
\end{tikzpicture}

ความคลาดเคลื่อนในแนว x และ y

เปิดใช้ทั้งสองทิศทางด้วย x dir และ y dir ส่วน error bar style กำหนดสไตล์ของแถบ

แถบความคลาดเคลื่อนทั้งสองทิศทาง

LaTeXส่วนนำ: \usepackage{pgfplots}เปิดในตัวแก้ไข (เปิดในแท็บใหม่)
\begin{tikzpicture}
  \begin{axis}[xlabel=$x$, ylabel=$y$]
    \addplot+[only marks, mark=square*,
              error bars/.cd,
                x dir=both, x explicit,
                y dir=both, y explicit,
                error bar style={red, thick}]
      coordinates {
        (1.0,1.2) +- (0.15,0.20)
        (2.0,2.1) +- (0.20,0.15)
        (3.0,2.8) +- (0.10,0.30)
      };
  \end{axis}
\end{tikzpicture}

แถบความคลาดเคลื่อนแบบพื้นที่ด้วย fill between

สำหรับความไม่แน่นอนแบบต่อเนื่อง ให้แรเงาพื้นที่ระหว่างเส้นโค้งบนและล่าง โหลดไลบรารี fillbetween ตั้งชื่อเส้นโค้งทั้งสองด้วย name path แล้วเติมสีระหว่างเส้นทั้งสอง

แถบแรเงารอบเส้นโค้ง

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[domain=0:4, samples=40, xlabel=$t$, ylabel=$y$]
    \addplot[name path=upper, draw=none] {exp(-0.5*x) + 0.1 + 0.05*x};
    \addplot[name path=lower, draw=none] {exp(-0.5*x) - 0.1 - 0.05*x};
    \addplot[blue!20] fill between[of=upper and lower];
    \addplot[blue, thick] {exp(-0.5*x)};
  \end{axis}
\end{tikzpicture}
\end{document}

ตัวเลือกของแถบความคลาดเคลื่อน

ตัวเลือกทำอะไรใน Scissor LaTeX
y dir=both, plus, minus, noneครึ่งใดของแถบที่จะวาด (รวมถึง x dir)ใช้ได้
y explicit, x explicitความคลาดเคลื่อนจาก +- ในพิกัดหรือจากคอลัมน์ตารางใช้ได้
y error=col, x error=col, y error index=nคอลัมน์ตารางที่มีค่าความคลาดเคลื่อนใช้ได้
+= (ex,ey), -= (ex,ey)ความคลาดเคลื่อนด้านบนและด้านล่างแยกกันในพิกัดใช้ได้
y fixed=v, y fixed relative=rความคลาดเคลื่อนเท่ากันสำหรับทุกจุดใช้ได้
error bar style={..}สีและความหนาเส้นของแถบใช้ได้
error mark=.., error mark options={..}หัวปิดที่ปลายแต่ละด้านยอมรับ แต่หัวปิดเป็นเส้นสั้นเสมอ

สิ่งที่ต่างจากการติดตั้ง TeX

คู่มือ pgfplots อธิบายแถบความคลาดเคลื่อนไว้ในหัวข้อ error bars: ctan.org/pkg/pgfplots

ดูเพิ่มเติม กราฟแท่ง, แผนภาพการกระจาย และ ข้อมูลจาก CSV

คำถามและคำตอบ

จะเพิ่มแถบความคลาดเคลื่อนใน pgfplots ได้อย่างไร

เขียน \addplot+[error bars/.cd, y dir=both, y explicit] coordinates {(1,2) +- (0,0.3) ...}; ตัวเลขที่สองหลัง +- คือความคลาดเคลื่อนของ y

จะอ่านแถบความคลาดเคลื่อนจากไฟล์ CSV ได้อย่างไร

เพิ่ม y error=column ในตัวเลือกของตาราง พร้อม y explicit ในตัวเลือกของแถบความคลาดเคลื่อน: table[x=a, y=b, y error=c, col sep=comma] {file.csv}

แถบความคลาดเคลื่อนด้านบนและด้านล่างต่างกันได้ไหม

ได้ เขียน += (0, up) และ -= (0, down) หลังจุดแทน +- เช่น (1,2) += (0,0.5) -= (0,0.1)

ทุกตัวอย่างในหน้านี้จัดหน้าโดย Scissor LaTeX ขณะสร้างเว็บไซต์ อัปเดตล่าสุด 2026-11-07