我在水平方向上有tikzpicture
两个环境:axis
\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
name=plotLeft,
xtick={0,1},
xlabel={$x$},
ytick={0,1},
ylabel={$y$},
colorbar,
view={0}{90},
]
\addplot3[surf,shader=interp,domain=0:1,y domain=0:1] {x+y};
\end{axis}
\begin{axis}
[
name=plotRight,
at={($(plotLeft.outer east)+(25mm,0)$)},
anchor=outer west,
xtick={0,1},
xlabel={$x$},
ytick={0,1},
ylabel={$y$},
colorbar,
view={0}{90}
]
\addplot3[surf,shader=interp,domain=0:1,y domain=0:1] {2*(x+y)};
\end{axis}
\end{tikzpicture}
\end{document}
生成的图片如下所示
对于正确环境的对齐axis
,我使用了at={($(plotLeft.outer east)+(25mm,0)$)},anchor=outer west
轴选项,但我实际上想要做的是将正确的图形相对于outer east
左图形的颜色条的锚点放置(如果定义了这样的锚点),而不是相对于锚点放置plotLeft.outer east
。
对于axis
环境,所有锚点均在PGFplots
手册修订版 1.12(2015/01/31)的第 4.19.1 节中定义,但我似乎找不到颜色条的此类定义。
我该如何解决这个问题?
答案1
颜色条本身就是一个轴,因此您可以使用相同的锚点,只需能够引用此类轴即可。手册第 4.9.12 节“颜色条”(我有 1.12.1 版,我希望这没有改变)中说,可以将前一个显式axis
环境的颜色条作为 进行访问current colorbar axis
。但是,如果您使用它的outer east
锚点,则图不会垂直对齐,因为颜色条没有 x 标记或标签。相反,您可以使用right of south east
和left of south west
锚点,如以下代码所示。
\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
name=plotLeft,
xtick={0,1},
xlabel={$x$},
ytick={0,1},
ylabel={$y$},
colorbar,
view={0}{90},
]
\addplot3[surf,shader=interp,domain=0:1,y domain=0:1] {x+y};
\end{axis}
\begin{axis}
[
name=plotRight,
at=(current colorbar axis.right of south east),
anchor=left of south west,
xtick={0,1},
xlabel={$x$},
ytick={0,1},
ylabel={$y$},
colorbar,
view={0}{90}
]
\addplot3[surf,shader=interp,domain=0:1,y domain=0:1] {2*(x+y)};
\end{axis}
\end{tikzpicture}
\end{document}