Chuyển đến nội dung

Nhiều đồ thị trong một lưới với groupplots

Nạp thư viện groupplots, mở một môi trường groupplot với group style={group size=2 by 1}, và bắt đầu mỗi đồ thị bằng \nextgroupplot.

Hai đồ thị cạnh nhau

Thư viện groupplots sắp xếp nhiều trục thành một lưới, với cùng kích thước và các khung thẳng hàng. group size=2 by 1 nghĩa là hai cột và một hàng. Mỗi \nextgroupplot bắt đầu ô tiếp theo, theo thứ tự đọc.

Hai đồ thị trên một hàng

\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}

Các tùy chọn trên groupplot áp dụng cho mọi ô; các tùy chọn trên \nextgroupplot chỉ áp dụng cho ô đó.

Lưới 2 x 2 với nhãn dùng chung

Trong một lưới, nhãn vạch chia và nhãn trục ở bên trong bị lặp lại. xlabels at=edge bottom và ylabels at=edge left chỉ giữ nhãn trục trên các đồ thị ở rìa ngoài, và xticklabels at=edge bottom làm điều tương tự với nhãn vạch chia trục x.

Bốn đồ thị với nhãn ở các rìa ngoài

\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}

Một đồ thị chính và một ô phần dư

Các ô có thể có chiều cao và khoảng giá trị khác nhau. Một bố cục thường gặp là đồ thị dữ liệu với một ô nhỏ chứa phần dư bên dưới, dùng chung trục x.

Dữ liệu và phần dư

\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}

Các khóa của group style

KhóaTác dụngTrong Scissor LaTeX
group size=C by Rsố cột x số hàngHoạt động
horizontal sep, vertical sepkhoảng cách giữa các khung trụcHoạt động
xlabels at=edge bottom, ylabels at=edge leftnhãn trục chỉ trên các đồ thị ở rìa ngoài (hoặc all)Hoạt động
xticklabels at=edge bottom, yticklabels at=edge leftnhãn vạch chia chỉ trên các đồ thị ở rìa ngoài (hoặc all)Hoạt động
group name=gmột tên để tham chiếu đến các ô, dạng g c1r1Được chấp nhận; tham chiếu đến ô chưa được hỗ trợ

Khác biệt so với một bản cài đặt TeX

Thư viện này là một phần của pgfplots; xem mục "groupplots" trong tài liệu hướng dẫn trên CTAN: ctan.org/pkg/pgfplots. Nếu bạn mới dùng pgfplots, hãy bắt đầu với đồ thị bằng pgfplots.

Xem thêm Đồ thị đường, Trục logarit và pgfplots.

Hỏi và đáp

Làm thế nào để tạo nhiều đồ thị con trong LaTeX?

Dùng thư viện groupplots của pgfplots: \usepgfplotslibrary{groupplots}, rồi \begin{groupplot}[group style={group size=2 by 2}] và một \nextgroupplot cho mỗi đồ thị.

Làm thế nào để dùng chung nhãn trục trong một nhóm đồ thị?

Thêm xlabels at=edge bottom và ylabels at=edge left vào group style, và đặt xlabel cùng ylabel trên groupplot.

Hai đồ thị có thể dùng chung một chú giải không?

Mỗi ô có chú giải riêng. Hãy đặt chú giải trong một ô và định vị nó bằng legend style={at={(x,y)}, anchor=...}.

Mọi ví dụ trên trang này đều được Scissor LaTeX dàn trang khi xây dựng trang web. Cập nhật lần cuối 2026-11-07.