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

หลายกราฟในตารางด้วย groupplots

โหลดไลบรารี groupplots เปิดสภาพแวดล้อม groupplot ด้วย group style={group size=2 by 1} แล้วเริ่มแต่ละกราฟด้วย \nextgroupplot

สองกราฟเรียงข้างกัน

ไลบรารี groupplots จัดวางแกนหลายแกนเป็นตาราง โดยมีขนาดเท่ากันและกรอบตรงแนวกัน group size=2 by 1 หมายถึงสองคอลัมน์และหนึ่งแถว \nextgroupplot แต่ละคำสั่งจะเริ่มช่องถัดไปตามลำดับการอ่าน

สองกราฟในแถวเดียว

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
  \begin{groupplot}[
      group style={group size=2 by 1, horizontal sep=1.5cm},
      width=6cm, height=4.5cm, xlabel=$t$,
    ]
    \nextgroupplot[title={Position}, ylabel=$x$]
    \addplot[blue, thick, domain=0:4, samples=40] {x^2/2};
    \nextgroupplot[title={Velocity}, ylabel=$v$]
    \addplot[red, thick, domain=0:4] {x};
  \end{groupplot}
\end{tikzpicture}
\end{document}

ตัวเลือกที่ groupplot มีผลกับทุกช่อง ส่วนตัวเลือกที่ \nextgroupplot มีผลเฉพาะช่องนั้น

ตาราง 2 x 2 พร้อมป้ายกำกับร่วม

ในตาราง ป้ายขีดแบ่งและป้ายกำกับแกนด้านในจะซ้ำกัน xlabels at=edge bottom และ ylabels at=edge left จะเก็บป้ายกำกับแกนไว้เฉพาะกราฟด้านนอก และ xticklabels at=edge bottom ทำแบบเดียวกันกับป้ายขีดแบ่งของแกน x

สี่กราฟที่มีป้ายกำกับที่ขอบด้านนอก

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
  \begin{groupplot}[
      group style={
        group size=2 by 2,
        horizontal sep=1.2cm, vertical sep=1cm,
        xlabels at=edge bottom, ylabels at=edge left,
        xticklabels at=edge bottom,
      },
      width=5.5cm, height=4cm,
      xlabel=$t$, ylabel=$y$, domain=0:6, samples=50,
    ]
    \nextgroupplot \addplot[blue] {sin(deg(x))};
    \nextgroupplot \addplot[red] {cos(deg(x))};
    \nextgroupplot \addplot[teal] {exp(-x/2)};
    \nextgroupplot \addplot[orange] {x/6};
  \end{groupplot}
\end{tikzpicture}
\end{document}

กราฟหลักและแผงค่าคงเหลือ

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

ข้อมูลและค่าคงเหลือ

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}
  \begin{groupplot}[
      group style={group size=1 by 2, vertical sep=0.4cm, xticklabels at=edge bottom},
      width=8cm, xmin=0, xmax=5,
    ]
    \nextgroupplot[height=5cm, ylabel={Signal}]
    \addplot+[only marks] coordinates {(1,2.1) (2,3.9) (3,6.2) (4,7.8)};
    \addplot[red, domain=0:5] {2*x};
    \nextgroupplot[height=3cm, xlabel=$x$, ylabel={Residual}, ymin=-0.5, ymax=0.5]
    \addplot+[only marks] coordinates {(1,0.1) (2,-0.1) (3,0.2) (4,-0.2)};
    \addplot[gray, dashed, domain=0:5] {0};
  \end{groupplot}
\end{tikzpicture}
\end{document}

คีย์ของ group style

คีย์ทำอะไรใน Scissor LaTeX
group size=C by Rจำนวนคอลัมน์ x จำนวนแถวใช้ได้
horizontal sep, vertical sepระยะห่างระหว่างกรอบแกนใช้ได้
xlabels at=edge bottom, ylabels at=edge leftป้ายกำกับแกนเฉพาะกราฟด้านนอก (หรือ all)ใช้ได้
xticklabels at=edge bottom, yticklabels at=edge leftป้ายขีดแบ่งเฉพาะกราฟด้านนอก (หรือ all)ใช้ได้
group name=gชื่อสำหรับอ้างถึงช่อง เช่น g c1r1ยอมรับ แต่ยังไม่รองรับการอ้างถึงช่อง

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

ไลบรารีนี้เป็นส่วนหนึ่งของ pgfplots ดูหัวข้อ "groupplots" ในคู่มือบน CTAN: ctan.org/pkg/pgfplots หากเพิ่งเริ่มใช้ pgfplots ให้เริ่มจากกราฟด้วย pgfplots

ดูเพิ่มเติม กราฟเส้น, แกนลอการิทึม และ pgfplots

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

จะสร้างกราฟย่อยใน LaTeX ได้อย่างไร

ใช้ไลบรารี groupplots ของ pgfplots: \usepgfplotslibrary{groupplots} แล้วตามด้วย \begin{groupplot}[group style={group size=2 by 2}] และ \nextgroupplot หนึ่งคำสั่งต่อหนึ่งกราฟ

จะใช้ป้ายกำกับแกนร่วมกันในกราฟแบบกลุ่มได้อย่างไร

เพิ่ม xlabels at=edge bottom และ ylabels at=edge left ใน group style แล้วตั้งค่า xlabel และ ylabel ที่ groupplot

สองกราฟใช้คำอธิบายสัญลักษณ์ร่วมกันได้ไหม

แต่ละช่องมีคำอธิบายสัญลักษณ์ของตัวเอง ให้ใส่คำอธิบายสัญลักษณ์ไว้ในช่องเดียวแล้วจัดตำแหน่งด้วย legend style={at={(x,y)}, anchor=...}

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