Tikz: horizontal centering of group of nodes
12,068
You can make each row its own matrix, allowing you to effectively group a set of nodes into one.
Your Example
\begin{tikzpicture}[auto]
\begin{scope}[]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (A) {A}; &
\node (B) {B}; &
\node (C) {C}; &
\node (D) {D}; \\
};
\end{scope}
\begin{scope}[yshift=-1.5cm]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (AB) {AB}; &
\node (AC) {AC}; &
\node (AD) {AD}; &
\node (BC) {BC}; &
\node (BD) {BD}; &
\node (CD) {CD}; \\
};
\end{scope}
\begin{scope}[yshift=-3cm]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (ABC) {ABC}; &
\node (ABD) {ABD}; &
\node (ACD) {ACD}; &
\node (BCD) {BCD}; \\
};
\end{scope}
\begin{scope}[yshift=-4.5cm]
\matrix[nodes={draw,ball}, column sep=1cm]{
\node (ABCD) {ABCD}; \\
};
\end{scope}
\end{tikzpicture}
Note: be sure to \usetikzlibrary{matrix}
Results in
(I made up my own ball
style.)
Author by
mindhex
Updated on June 13, 2022Comments
-
mindhex almost 2 years
I need to align each row of the graph to the center. I am trying to do it with xshift. Here the code:
\begin{tikzpicture}[node distance=1.5cm, auto, text centered] \tikzstyle{every node}=[draw,ball]; \begin{scope}[xshift=1.5cm] \node (A) {A}; \node [right of=A] (B) {B}; \node [right of=B] (C) {C}; \node [right of=C] (D) {D}; \end{scope} \begin{scope}[yshift=-1.5cm] \node (AB) {AB}; \node [right of=AB] (AC) {AC}; \node [right of=AC] (AD) {AD}; \node [right of=AD] (BC) {BC}; \node [right of=BC] (BD) {BD}; \node [right of=BD] (CD) {CD}; \end{scope} \begin{scope}[yshift=-3cm,node distance=2cm,xshift=1cm] \node (ABC) {ABC}; \node [right of=ABC] (ABD) {ABD}; \node [right of=ABD] (ACD) {ACD}; \node [right of=ACD] (BCD) {BCD}; \end{scope} \begin{scope}[xshift=4cm, yshift=-4.5cm, node distance=2cm] \node (ABCD) {ABCD}; \end{scope} \end{tikzpicture}
Is there any other way to do it? Do not like to change xshift values every time.
-
Geoff almost 14 yearsOh. I just realized you posted a comment referring to
matrix
. I hope this is useful anyway. -
mindhex almost 14 yearsI thought about making one big matrix, not one matrix per scope, thanks!