如何根据轴上显示的单位移动 tikzpicture?

如何根据轴上显示的单位移动 tikzpicture?

我曾经tikzpicture创建过几个在 y 轴上应该具有可比性的图表。我曾经xshift将其中一个向右移动任意量(10 厘米的反复试验)。但我的yshift必须精确地为“y 轴上的 2 个单位”。我猜默认值是 pt,因此yshift=2不起作用。

\begin{tikzpicture}
  \begin{axis}[axis lines=middle,xmin=0,xmax=15,ymin=0,ymax=15, extra y ticks={2},]
        \addplot+[no marks,domain=4:10,samples=200, thick, blue] {0.3*(x-10)^2+4};  
        \addplot+[no marks,domain=0:11,samples=200, thick, blue] {2}; 
        \coordinate (X1) at (11,2);
  \end{axis}

  \begin{axis}[axis lines=middle,xmin=0,xmax=15,ymin=0,ymax=13,xshift=10cm,yshift=2]
    \coordinate (X2) at (0,0);
    \end{axis}

    \draw[draw=gray, thick, dashed] (X1) -- (X2);
\end{tikzpicture}

左侧 y 轴上的 15 应该完全等于右侧图表中的 12。

在此处输入图片描述

此外,这里还有 Baldwin/Wyplosz (2009) 的一些经济应用:右图总是必须从左图的某个常数值 (这里是 MC) 开始。 在此处输入图片描述

答案1

您可以用它calc来测量转变。

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[axis lines=middle,xmin=0,xmax=15,ymin=0,ymax=15, extra y ticks={2},]
        \addplot+[no marks,domain=4:10,samples=200, thick, blue] {0.3*(x-10)^2+4};  
        \addplot+[no marks,domain=0:11,samples=200, thick, blue] {2}; 
        \coordinate (X0) at (0,0);
        \coordinate (X1) at (11,2);
        \path let \p1=($(X1)-(X0)$) in \pgfextra{\xdef\myyshift{\y1}};
  \end{axis}

  \begin{axis}[axis lines=middle,xmin=0,xmax=15,ymin=0,ymax=13,xshift=10cm,
  yshift=\myyshift]
    \coordinate (X2) at (0,0);
    \end{axis}

    \draw[draw=gray, thick, dashed] (X1) -- (X2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

您还可以使用

 \path let \p1=($(0,2)-(0,0)$) in \pgfextra{\xdef\myyshift{\y1}};

相关内容