
生成されたプロットをそれぞれのy軸ラベルで垂直に揃えたいのですがpgfplots
、それにテキスト(または数学記号)を添えたいので、TikZオプションを使用しようとしていますbaseline=(node.position)
が、どういうわけかノードにアクセスできませんylabel
。以下は、プロットを次のモックアップ例から取ったものです。pgfplots ギャラリー:
\documentclass{standalone}
\usepackage{pgfplots,tikz}
\begin{document}
\begin{tikzpicture}[baseline=(ylabel.center)]
\begin{axis}[
height=5cm,
xlabel=Cost,
ylabel=Error]
\addplot[color=red,mark=x] coordinates {
(2,-2.8559703)
(3,-3.5301677)
(4,-4.3050655)
(5,-5.1413136)
(6,-6.0322865)
(7,-6.9675052)
(8,-7.9377747)
};
\end{axis}
\end{tikzpicture}
$\Rightarrow$
\begin{tikzpicture}[baseline=(ylabel.center)]
\begin{axis}[
height=4cm,
xmin=-3, xmax=3,
ymin=-3, ymax=3,
extra x ticks={-1,1},
extra y ticks={-2,2},
extra tick style={grid=major},
xlabel=x,
ylabel=y,
]
\draw[red] \pgfextra{
\pgfpathellipse{\pgfplotspointaxisxy{0}{0}}
{\pgfplotspointaxisdirectionxy{1}{0}}
{\pgfplotspointaxisdirectionxy{0}{2}}
};
\draw[blue] \pgfextra{
\pgfpathellipse{\pgfplotspointaxisxy{0}{0}}
{\pgfplotspointaxisdirectionxy{1}{1}}
{\pgfplotspointaxisdirectionxy{0}{2}}
};
\addplot [only marks,mark=*] coordinates { (0,0) };
\end{axis}
\end{tikzpicture}
\end{document}
何が間違っているのでしょうか?
答え1
デフォルトではylabels に名前は付けられませんが、オプションでylabel
指定することで名前を追加できます。ylabel style={name=ylabel}
axis
あるいは、[baseline=(current axis.east)]
を追加せずに と記述することもできますylabel style
。この場合、同じ出力が得られます (少なくともこの場合は)。
\documentclass{standalone}
\usepackage{pgfplots,tikz}
\begin{document}
\begin{tikzpicture}[baseline=(ylabel.center)]
\begin{axis}[
height=5cm,
xlabel=Cost,
ylabel=Error,
ylabel style={name=ylabel}]
\addplot[color=red,mark=x] coordinates {
(2,-2.8559703)
(3,-3.5301677)
(4,-4.3050655)
(5,-5.1413136)
(6,-6.0322865)
(7,-6.9675052)
(8,-7.9377747)
};
\end{axis}
\end{tikzpicture}
$\Rightarrow$
\begin{tikzpicture}[baseline=(ylabel.center)]
\begin{axis}[
height=4cm,
xmin=-3, xmax=3,
ymin=-3, ymax=3,
extra x ticks={-1,1},
extra y ticks={-2,2},
extra tick style={grid=major},
xlabel=x,
ylabel=y,
ylabel style={name=ylabel}
]
\draw[red] \pgfextra{
\pgfpathellipse{\pgfplotspointaxisxy{0}{0}}
{\pgfplotspointaxisdirectionxy{1}{0}}
{\pgfplotspointaxisdirectionxy{0}{2}}
};
\draw[blue] \pgfextra{
\pgfpathellipse{\pgfplotspointaxisxy{0}{0}}
{\pgfplotspointaxisdirectionxy{1}{1}}
{\pgfplotspointaxisdirectionxy{0}{2}}
};
\addplot [only marks,mark=*] coordinates { (0,0) };
\end{axis}
\end{tikzpicture}
\end{document}