2

Here's a quick visual link to what I want to show,

https://www.youtube.com/watch?v=rVvGqWyQB_0&index=2&list=PL5563BAB9EA968641

at 6:09.

I've tried using minipages but that won't allow for a line to go from one plot to the other and here is the code for one of the plots,

\begin{tikzpicture}
\begin{axis}[ 
ticks=none,
axis lines = middle,
axis line style={->},
ymin=-0.5, ymax = 2.5,
xmin=-0.5, xmax=2.5,
xlabel={$x$},
ylabel={$y$},
axis equal image
]
\draw (axis cs:1.25,1.25) circle [blue, radius=0.5];
\draw[color=blue] (axis cs:1.25,1.25) node[above left] {$a$};
\draw[color=blue] (axis cs:1.25,1.25) node{$\bullet$};
\draw [->] (axis cs:1.25,1.25)  -- node[pos = 0.5, below] {$\delta$} (axis cs:1.75,1.25) ;

\end{axis}
\end{tikzpicture}
3
  • I'll add it sorry. Nov 28, 2018 at 20:45
  • 1
    You can have multiple axis environments in the same tikzpicture, placed at different locations with the at key. See for example tex.stackexchange.com/questions/289079/2x2-array-of-pgf-plots/… Nov 28, 2018 at 20:58
  • In addition to what @TorbjørnT. is saying, you could use remember picture to remember the coordinates in a given picture. You can then access them with overlay,remember picture in a separate picture.
    – user121799
    Nov 28, 2018 at 21:08

2 Answers 2

3

It is possible to create several axis environments and shift them with xshift. Then, simply draw an arrow from one to the other.

axis

\documentclass{article}
\usepackage{tikz,pgfplots}


\begin{document}
\begin{tikzpicture}
\begin{axis}[ 
ticks=none,
axis lines = middle,
axis line style={->},
ymin=-0.5, ymax = 2.5,
xmin=-0.5, xmax=2.5,
xlabel={$x$},
ylabel={$y$},
axis equal image
]
\draw (axis cs:1.25,1.25) circle [blue, radius=0.5];
\draw[color=blue] (axis cs:1.25,1.25) node[above left] {$a$};
\draw[color=blue] (axis cs:1.25,1.25) node (a) {$\bullet$};
\draw [->] (axis cs:1.25,1.25)  -- node[pos = 0.5, below] {$\delta$} (axis cs:1.75,1.25) ;

\end{axis}

\begin{axis}[ xshift=7cm,
ticks=none,
axis lines = middle,
axis line style={->},
ymin=-0.5, ymax = 2.5,
xmin=-0.5, xmax=2.5,
xlabel={$x$},
ylabel={$y$},
axis equal image
]
\draw (axis cs:1.25,1.25) circle [blue, radius=0.5];
\draw[color=blue] (axis cs:1.25,1.25) node[above] {$a$};
\draw[color=blue] (axis cs:1.25,1.25) node(b){$\bullet$};
\draw [->] (axis cs:1.25,1.25)  -- node[pos = 0.5, below] {$\delta$} (axis cs:1.75,1.25) ;

\end{axis}

\draw[->](a)to[bend left](b);
\end{tikzpicture}
\end{document}
3
  • Thank you I did not know of the xshift command before. Nov 28, 2018 at 21:18
  • 1
    pgfploots is based on tikz, so it load it , i.e it is necessary to load tikz again. for pgfplots is fine to defined used version. for example after 1.11 you can write coordinates in diagram as (1.25,1.25) .
    – Zarko
    Nov 28, 2018 at 21:19
  • 1
    @AndréC while using multiple axis, it is better to use anchor and at as suggested by Stefan in this answer: tex.stackexchange.com/questions/464661/…. Dec 16, 2018 at 16:48
4

In the video it seems that the points also get accessed from outside, which means you might need remember picture anyway.

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{figure}[htb]
\centering
\begin{tikzpicture}[remember picture]
\begin{axis}[ 
ticks=none,
axis lines = middle,
axis line style={->},
ymin=-0.5, ymax = 2.5,
xmin=-0.5, xmax=2.5,
xlabel={$x$},
ylabel={$y$},
axis equal image
]
\draw (axis cs:1.25,1.25) circle [blue, radius=0.5];
\draw[color=blue] (axis cs:1.25,1.25) node[above left] {$a$};
\draw[color=blue] (axis cs:1.25,1.25) node{$\bullet$};
\draw [->] (axis cs:1.25,1.25)  -- node[pos = 0.5, below] {$\delta$} (axis cs:1.75,1.25) 
coordinate(d1);
\end{axis}
\end{tikzpicture}
\quad
\begin{tikzpicture}[remember picture]
\begin{axis}[ 
ticks=none,
axis lines = middle,
axis line style={->},
ymin=-0.5, ymax = 2.5,
xmin=-0.5, xmax=2.5,
xlabel={$x$},
ylabel={$y$},
axis equal image
]
\draw (axis cs:1.25,1.25) circle [blue, radius=0.5];
\draw[color=blue] (axis cs:1.25,1.25) node[above left] {$a$};
\draw[color=blue] (axis cs:1.25,1.25) node{$\bullet$};
\draw [->] (axis cs:1.25,1.25)  -- node[pos = 0.5, right] {$\delta$} 
(axis cs:1.25,0.75) coordinate(d2);
\end{axis}
\end{tikzpicture}
\caption{On the left, our point is on the
\tikzmarknode{D1}{right} while it is on the \tikzmarknode{D2}{bottom} in the
right figure. }
\begin{tikzpicture}[overlay,remember picture]
\draw[red,-latex] (D1) to[out=90,in=-90] (d1);
\draw[red,-latex] (D2) to[out=90,in=-90] (d2);
\draw[red,-latex] (d1) to[out=0,in=180] node[midway,above,sloped,fill=white,fill
opacity=0.6]{has moved}(d2);
\end{tikzpicture}
\end{figure}
\end{document}

enter image description here

2
  • 1
    Well I didn't even know you could do this but thank you so much I think this will explain the point I'm trying to make very well. Nov 28, 2018 at 21:35
  • 2
    @JohnMiller I think the marmot finally found the crystal ball... Did you asked him?
    – manooooh
    Nov 29, 2018 at 1:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .