y 레이블을 기준으로 pgfplot을 기준선에 수직으로 정렬

y 레이블을 기준으로 pgfplot을 기준선에 수직으로 정렬

pgfplots생성된 일부 플롯을 해당 y축 레이블을 기준으로 수직으로 정렬하고 싶습니다 . 그와 함께 텍스트(또는 수학 기호)를 원하기 때문에 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

ylabel에는 기본적으로 이름이 지정되어 있지 않지만 옵션 에서 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}

관련 정보