我想创建一个图形,其中三个 tikzpicture 并排对齐,其中每个图应具有相同的轴对齐。我尝试了以下方法
\documentclass{scrartcl}
\usepackage{tikz-cd}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{figure}
\centering
\begin{minipage}{0.15\textwidth}
\begin{tikzpicture}
\begin{axis}[ymin=-1/3,ymax=1.3,
xmin=-1/3,xmax=1,
axis line style={draw=none},
ticks=none,xlabel=$K_1$
]
\pgfmathsetmacro{\rr}{0.02}
\pgfmathsetmacro{\oo}{1}
\draw[black,fill=red,opacity=\oo] (0,0) circle (\rr) node[below] {$v_1$};
\end{axis}
\end{tikzpicture}
\end{minipage}
\hspace{0.3cm}
\begin{minipage}{0.15\textwidth}
\begin{tikzpicture}
\begin{axis}[ymin=-1/3,ymax=1.3,
xmin=-1/3,xmax=1,
axis line style={draw=none},
ticks=none, xlabel=$K_2$
]
\pgfmathsetmacro{\rr}{0.02}
\pgfmathsetmacro{\oo}{1}
\draw[black,fill=red,opacity=\oo] (0,0) circle (\rr) node[below] {$v_1$};
\draw[black,fill=red,opacity=\oo] (3/4,3/4) circle (\rr) node[below]
{$v_2$};
\end{axis}
\end{tikzpicture}
\end{minipage}
\hspace{0.3cm}
\begin{minipage}{0.15\textwidth}
\begin{tikzpicture}
\begin{axis}[ymin=-1/3,ymax=1.3,
xmin=-1/3,xmax=1,
axis line style={draw=none},
ticks=none,xlabel=$K_3$
]
\pgfmathsetmacro{\rr}{0.02}
\pgfmathsetmacro{\oo}{1}
\draw[black,fill=red,opacity=\oo] (0,0) circle (\rr) node[below] {$v_1$};
\draw[black,fill=red,opacity=\oo] (3/4,3/4) circle (\rr) node[below]
{$v_2$};
\draw[black,fill=red,opacity=\oo] (1/2,1) circle (\rr) node[below] {$v_3$};
\end{axis}
\end{tikzpicture}
\end{minipage}
\caption{test}
\label{fig: test}
\end{figure}
\end{document}
这将产生以下输出:
正如您所见,对齐根本不起作用。它以某种方式将所有内容移到右侧,并且 tikzpcitures 本身也重叠。
有人可以向我解释一下如何以正确的方式做到这一点。
答案1
我不确定您希望输出是什么样子,所以我不知道下面的输出是否是您想要的,但一种可能性是只使用一个minipage
(甚至不使用小页面)并将所有内容放在一个tikzpicture
环境中,将不同的图表放在不同的scope
环境中。这样做会产生:
正如我所说,我不知道这是否是您想要的输出:)
以下是代码:
\documentclass{article}
\usepackage{tikz-cd}% not needed?
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\pgfmathsetmacro{\rr}{0.02}
\pgfmathsetmacro{\oo}{1}
\pgfplotsset{
myaxis/.style={
ymin=-1/3,
ymax=1.3,
xmin=-1/3,
xmax=1,
axis line style={draw=none},
ticks=none,
},
}
\tikzset{
bline/.style= {
black,
fill=red,
opacity=\oo
}
}
\begin{figure}
\centering
\begin{minipage}{\textwidth}
\begin{tikzpicture}
\begin{scope}[xshift=0\textwidth]% not needed, only for consistency
\begin{axis}[myaxis, xlabel=$K_1$]
\draw[bline] (0,0) circle (\rr) node[below] {$v_1$};
\end{axis}
\end{scope}
\begin{scope}[xshift=0.3\textwidth]
\begin{axis}[myaxis, xlabel=$K_2$]
\draw[bline] (0,0) circle (\rr) node[below] {$v_1$};
\draw[bline] (3/4,3/4) circle (\rr) node[below] {$v_2$};
\end{axis}
\end{scope}
\begin{scope}[xshift=0.6\textwidth]
\begin{axis}[myaxis, xlabel=$K_3$]
\draw[bline] (0,0) circle (\rr) node[below] {$v_1$};
\draw[bline] (3/4,3/4) circle (\rr) node[below] {$v_2$};
\draw[bline] (1/2,1) circle (\rr) node[below] {$v_3$};
\end{axis}
\end{scope}
\end{tikzpicture}
\end{minipage}
\caption{test}
\label{fig: test}
\end{figure}
\end{document}
我稍微整理了一下你的代码。这有助于定义你分别使用的tikz
样式pgfplots
,然后在需要时插入它们。这使得代码更具可读性,更重要的是,更容易调整和更改,因为你只需要在一个地方进行这些操作。