图中的图:放大图,使放大的部分被带有刻度和刻度标签的轴框住

图中的图:放大图,使放大的部分被带有刻度和刻度标签的轴框住

我想像使用库一样放大图,但我希望 spy-in 节点包含自己的刻度和刻度标签,网格比原始图更细。为了澄清我的意思,我通过编辑使用 Inkscape 程序和库spy生成的图片来准备以下图片:pgfplotsspy

在此处输入图片描述

以下是图片中“pgfplots和”部分的代码:spy

\documentclass{standalone}   

\usepackage{pgfplots}   
\pgfplotsset{width=10cm,compat=newest}
\usepgfplotslibrary{units}
\usetikzlibrary{spy,backgrounds}
\usepackage{pgfplotstable}

\pgfplotstableread{
0.0    1.0
0.0   -0.5
}\datatable

\begin{document}

\begin{tikzpicture} [spy using outlines={rectangle, magnification=2, size=0.5cm, connect spies}]
\begin{axis}[
  xlabel={Energy},
  ylabel={Intensity},
  x unit={eV}
]
\addplot +[mark=none] table [x index=0, y index=1] {\datatable};
\addplot +[mark=none] {0.1*x^2};

\begin{scope}
    \spy[black,size=2cm] on (4.25,1.65) in node [fill=none] at (5,5.5);
\end{scope}

\end{axis}
\end{tikzpicture}

\end{document}

我不确定是否可以使用该spy库来实现这一点。也许需要另一种方法来实现这一点。

答案1

您需要另一种方法来实现效果,因为望远镜永远不会产生自己的pgfplots轴(它在的左下方操作pgf)。

一种可能的解决方案是pgfplots在某个节点(可能是pin)中创建一个单独的轴,然后相应地重新配置该单独的轴:

\documentclass{article}   

\usepackage{pgfplots}   
\pgfplotsset{width=10cm,compat=newest}
\usepgfplotslibrary{units}
\usetikzlibrary{spy,backgrounds}
\usepackage{pgfplotstable}

\pgfplotstableread{
0.0    1.0
0.0   -0.5
}\datatable

\begin{document}

\begin{tikzpicture}[every pin/.style={fill=white}]
\begin{axis}[
  xlabel={Energy},
  ylabel={Intensity},
  x unit={eV}
]
\addplot +[mark=none] table [x index=0, y index=1] {\datatable};
\addplot +[mark=none] {0.1*x^2};

\coordinate (pt) at (axis cs:0,0);
\end{axis}

\node[pin=70:{%
    \begin{tikzpicture}[baseline,trim axis left,trim axis right]
    \begin{axis}[
        tiny,
      xlabel={Energy},
      ylabel={Intensity},
      x unit={eV},
      xmin=-1,xmax=1,
      ymin=-0.2,ymax=0.2,
      enlargelimits,
    ]
    \addplot +[mark=none] table [x index=0, y index=1] {\datatable};
    \addplot +[mark=none] {0.1*x^2};
    \end{axis}
    \end{tikzpicture}%
}] at (pt) {};
\end{tikzpicture}

\end{document}

在此处输入图片描述

这会在引脚参数内生成一个单独的轴。为了减小边界框(从而减小引脚的目标位置),我选择修剪左侧和右侧的轴。every pin外部图片的选项为嵌套引脚配置填充颜色。请注意,不支持嵌套轴,这就是我在第一个图pgfplots之后移动引脚的原因。\end{axis}

如果您的应用程序允许,您还可以调整domain内轴的参数以提高准确性。

我认为您也可以在“放大”解决方案周围生成一些矩形边框。如果需要精确,则需要使用 手动完成\draw ... rectangle ...;。可以使用 实现不精确的矩形\node[rectangle,draw=black,text width=...,pin=.....]

相关内容