TikZ: Como dimensionar a caixa espiã com o tikzpicture?

TikZ: Como dimensionar a caixa espiã com o tikzpicture?

Com a ajuda deComo faço para ampliar uma área retangular em pgfplots adicionando um fundo cinza mesmo para os rótulos dos eixos?eNenhum conteúdo no zoom Tikz espiãoConsegui obter o máximo do que desejo. Usando sozinho, este exemplo fica assim:

Saída

Usei o seguinte código "independente" para gerar a imagem.

% Source 1: https://tex.stackexchange.com/questions/102477/
% Source 2: https://tex.stackexchange.com/questions/62953/

\documentclass[tikz,border=2pt,png]{standalone}

\usepackage{pgfplots}
%\usepackage{tikz}% no needs since pgfplots loads already it
\pgfplotsset{compat=1.7} % Set the pgf plots to a current version
\usetikzlibrary{spy}

\begin{document}
\tikzset{new spy style/.style={spy scope={%
 magnification=5,
 size=1.25cm, 
 connect spies,
 every spy on node/.style={
   rectangle,
   draw,
   },
 every spy in node/.style={
   draw,
   rectangle,
   }
  }
 }
} 
\begin{tikzpicture}[new spy style]
\begin{axis}[%
  height=0.3\textwidth,
  width=0.96\textwidth,
  name = BG,
  unbounded coords=jump,
  scale only axis,
  xmin=-3.68158764150225, xmax=4.05456770289782,
  ymin=-1.44575077919192, ymax=1.15200357048622,
  axis lines*=left,
  axis equal image]
  \addplot [
    color=blue,
    solid,
    mark=+,
    mark options={solid},
    ]
    {sin(deg(x))};     
  \addplot [
    color=red,
    solid,
    mark=*,
    mark options={solid},
    ]
    {sin(deg(x))+0.1};     
  \addplot [
    color=green,
    solid,
    mark=x,
    mark options={solid},
    ]
    {sin(deg(x))-0.1};     
    \coordinate (spypoint) at (axis cs:0,0.0); 
    \coordinate (spyviewer) at (axis cs:1.7,-.5); 

\end{axis}
%using axis coordinates and without "spy style" defined above
\spy[width=2cm,height=3cm] on (spypoint) in node [fill=white] at (spyviewer); 

\end{tikzpicture}%
\end{document}

Como você pode ver, consegui definir as coordenadas para \spy em relação ao eixo (próximo ao final do código). Porém não consegui definir o tamanho da mesma forma. Como consequência, o gráfico pode parecer diferente se usado dentro de um documento principal.

Tenho certeza de que isso tem a ver com o uso de "altura" e "largura" na configuração do eixo e/ou com o uso de "cm" no comando \spy.

Minha solução preferida seria algo em que eu usasse "\spy" de uma forma que pudesse me referir ao sistema de coordenadas do eixo para determinar seu tamanho também. Qualquer tentativa de mover o comando "\ spy" dentro do "eixo" falhou.


A motivação por trás desta questão pode ser vista nas duas imagens a seguir usando meus dados reais.

Se compilado como independente: Estar sozinho E para comparação quando compilado no documento principal: Como parte do documento principal


Responder1

Como a imagem inteira é dimensionada, \textwidthimaginei que seria bom usar também esta \spycaixa para dimensionar. Então substituindo

\spy[width=2cm,height=3cm] on (spypoint) in node [fill=white] at (spyviewer); 

com

\spy[width=0.2\textwidth,height=0.3\textwidth] on (spypoint) in node [fill=white] at (spyviewer); 

era tudo o que precisava ser feito. Se a caixa agora estiver posicionada e dimensionada corretamente no standaloneambiente, seu tamanho e posição também serão preservados no documento principal.

informação relacionada