0

The following two TikZ environments should give similar displays. I am trying to get five graphs of parabolas, each on the Cartesian plane, and to put a label of a.), b.), c.), d.), or e.) at the upper left corner of each graph - outside the TikZ environment.

The first display uses options in the axis environment, like naming the first plot plot1 and moving the second plot with respect to the first plot with at={($(plot1.east)+(1cm,0)$)}. Except for placing the labels a.), b.), c.), d.), and e.), it is the display that I want. The second uses the adjustbox package. Each graph is too big and the parabolas on each Cartesian plane is artificially shifted. The graphs are displayed in the array that I want, and the labels a.), b.), c.), d.), or e.) seem to be positioned correctly, though.

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{adjustbox}
\usepackage{mathtools}

\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\begin{document}

\noindent This is the left margin. \vskip1.25mm

\begin{tikzpicture}
  \begin{axis}[name=plot1,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {5*x^(2)};
  \end{axis}
  \begin{axis}[name=plot2,at={($(plot1.east)+(1cm,0)$)},anchor=west,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {-5*x^(2) + 3};
  \end{axis}
  \begin{axis}[name=plot3,at={($(plot1.south)-(0,1cm)$)},anchor=north,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
  ]
    \addplot[samples=201,domain=-3:3,blue] {-5*(x^(2) - x)};
  \end{axis}
  \begin{axis}[name=plot4,at={($(plot2.south)-(0,1cm)$)},anchor=north,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {5*(x^(2) + x)};
  \end{axis}
    \begin{axis}[name=plot5,at={($(plot3.south)-(0,1cm)$)},anchor=north,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-6,ymax=6,
    restrict y to domain=-6:6,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {-5*x^(2) - 0.5)};
  \end{axis}
\end{tikzpicture}


\vfill
\pagebreak


\noindent This is the left margin. \vskip1.25mm

a.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]
\addplot[samples=201,domain=-3:3,blue] {5*x^(2)};\end{axis}
\end{tikzpicture}}
%
b.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {-5*x^(2) + 3};\end{axis}
\end{tikzpicture}}
%
c.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {-5*(x^(2) - x};\end{axis}
\end{tikzpicture}}
%
d.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {5*(x^(2) + x)};\end{axis}
\end{tikzpicture}}
%
e.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {-5*x^(2) - 0.5};\end{axis}
\end{tikzpicture}}
\hspace{\fill}

\end{document}
user143462
  • 1,039

1 Answers1

1

One solution is to use the scale option for the tikzpicture environment to reduce the size of the plots. I have not looked for the reason for the off positions graphs. You need to check very carefully for missmatch in plotting area and the graph plotted .

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{adjustbox}
\usepackage{mathtools}

\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\begin{document}

a.) \adjustbox{valign=t}{\begin{tikzpicture}[scale=.25]
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]
\addplot[samples=201,domain=-3:3,blue] {5*x^(2)};\end{axis}
\end{tikzpicture}}
%
b.) \adjustbox{valign=t}{\begin{tikzpicture}[scale=.25]
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {-5*x^(2) + 3};\end{axis}
\end{tikzpicture}}
%
c.) \adjustbox{valign=t}{\begin{tikzpicture}[scale=.25]
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {-5*(x^(2) - x};\end{axis}
\end{tikzpicture}}
%
d.) \adjustbox{valign=t}{\begin{tikzpicture}[scale=.25]
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {5*(x^(2) + x)};\end{axis}
\end{tikzpicture}}
%
e.) \adjustbox{valign=t}{\begin{tikzpicture}[scale=.25]
%These commands plot the second parabola on the Cartesian plane.
\draw[draw=gray!30,latex-latex] (0,9) +(0,0.5) node[above right] {$y$} -- (0,-9) -- +(0,-0.5);
\draw[draw=gray!30,latex-latex] (-3,0) +(-0.5,0) -- (3,0) -- +(0.5,0) node[below right] {$x$};
\begin{axis}[hide axis]\addplot[samples=201,domain=-3:3,blue] {-5*x^(2) - 0.5};\end{axis}
\end{tikzpicture}}
\hspace{\fill}

\end{document}

enter image description here

Here is an alternate way to display parabolas. You only need to look at the pgfplots manual regarding options of the axis environment to see the other possibilities.

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{adjustbox}
\usepackage{mathtools}

\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\begin{document}
\noindent This is the left margin. \vskip1.25mm

a.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\begin{axis}[grid=none,
      mark = none, 
      xmin = -3, ymin = -45,
      xmax = 3,ymax = 45,
      axis lines*=middle,
      enlargelimits=upper,
      clip=false]
\addplot[samples=201,domain=-3:3,blue] {5*x^(2)};\end{axis}
\end{tikzpicture}}
%
b.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\begin{axis}[grid=none,
      mark = none, 
      xmin = -3, ymin = -45,
      xmax = 3,ymax = 45,
      axis lines*=middle,
      enlargelimits=upper,
      clip=false]
\addplot[samples=201,domain=-3:3,blue] {-5*x^(2) + 3};\end{axis}
\end{tikzpicture}}
\par
c.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\begin{axis}[grid=none,
      mark = none, 
      xmin = -3, ymin = -45,
      xmax = 3,ymax = 45,
      axis lines*=middle,
      enlargelimits=upper,
      clip=false]
\addplot[samples=201,domain=-3:3,blue] {-5*(x^(2) - x};\end{axis}
\end{tikzpicture}}
%
d.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\begin{axis}[grid=none,
      mark = none, 
      xmin = -3, ymin = -45,
      xmax = 3,ymax = 45,
      axis lines*=middle,
      enlargelimits=upper,
      clip=false]
\addplot[samples=201,domain=-3:3,blue] {5*(x^(2) + x)};\end{axis}
\end{tikzpicture}}
\par
e.) \adjustbox{valign=t}{\begin{tikzpicture}
%These commands plot the second parabola on the Cartesian plane.
\begin{axis}[grid=none,
      mark = none, 
      xmin = -3, ymin = -45,
      xmax = 3,ymax = 45,
      axis lines*=middle,
      enlargelimits=upper,
      clip=false]
\addplot[samples=201,domain=-3:3,blue] {-5*x^(2) - 0.5};\end{axis}
\end{tikzpicture}}

\end{document}

enter image description here

Diagram using the first half of your code.

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{adjustbox}
\usepackage{mathtools}

\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\begin{document}

\noindent This is the left margin. \vskip1.25mm
\begin{tikzpicture}
  \begin{axis}[name=plot1,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {5*x^(2)};
    \node at (axis cs:-4.5,14) [anchor= north west] {a.)};
  \end{axis}
  \begin{axis}[name=plot2,at={($(plot1.east)+(1cm,0)$)},anchor=west,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {-5*x^(2) + 3};
    \node at (axis cs:-4.5,14) [anchor= north west] {b.)};
  \end{axis}
  \begin{axis}[name=plot3,at={($(plot1.south)-(0,1cm)$)},anchor=north,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
  ]
    \addplot[samples=201,domain=-3:3,blue] {-5*(x^(2) - x)};
    \node at (axis cs:-4.5,14) [anchor= north west] {c.)};
  \end{axis}
  \begin{axis}[name=plot4,at={($(plot2.south)-(0,1cm)$)},anchor=north,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-9,ymax=9,
    restrict y to domain=-9:9,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {5*(x^(2) + x)};
    \node at (axis cs:-4.5,14) [anchor= north west] {d.)};
  \end{axis}
    \begin{axis}[name=plot5,at={($(plot3.south)-(0,1cm)$)},anchor=north,height=5cm,width=5cm,
    axis lines=middle,
    xmin=-3,xmax=3,samples=201,
    xlabel=$x$,ylabel=$y$,
    ymin=-6,ymax=6,
    restrict y to domain=-6:6,
    enlargelimits={abs=0.5cm},
    axis line style={latex-latex},
    xtick={\empty},ytick={\empty},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
    ]
    \addplot[samples=201,domain=-3:3,blue] {-5*x^(2) - 0.5)};
    \node at (axis cs:-4.5,9) [anchor= north west] {e.)};
  \end{axis}
\end{tikzpicture}

\end{document}

enter image description here

  • The graphs that you displayed only use the adjustbox package. As you commented, they are not displayed properly. The only modification that you did was include [scale=.25]. Why does that horizontally shift the graphs? – user143462 May 02 '15 at 16:01
  • Why are the parabolas in your display not centered across the y-axis? You declare domain=-3:3 in the addplot commands for them. – user143462 May 02 '15 at 16:10
  • @user143462 I added a section with an alternate method of plotting parabolas. – R. Schumacher May 02 '15 at 20:25
  • Yes, I see your edits to the code using the adjustbox package - you plotted the parabolas with respect to the axis environment. (The second and third rows need to be shifted to the right a bit.) May you suggest a web site explaining this package? – user143462 May 03 '15 at 01:10
  • I would really like to know how to get the same display using the first code - the one in which I use the option at={($(plot1.east)+(1cm,0)$)}. The only feature that I am missing is placing a.), ... and e.) to the left of the upper left corner of each graph. Can you help me with that? – user143462 May 03 '15 at 01:25
  • 1
    @user143462 I searched this site for "pgfplots text on graph" and from one of the hits I got a solution. Documentation for adjustbox is at http://texdoc.net/texmf-dist/doc/latex/adjustbox/adjustbox.pdf. I recommend you bookmark http://texdoc.net/ and use this to find documentation for any LaTeX package contained in CTAN. – R. Schumacher May 03 '15 at 01:56
  • I have looked in tex.stackexchange for "pgfplots text on graph." The web site suggested that I look at the following links: "Correctly align vertical text on a baseline in pgfplots," "Broken text on bottom of pgfplots," "Vertically center text on a page," and "Left & Right text on title." (The last of these does not involve TikZ or pgfplots!) May you provide me the link? – user143462 May 03 '15 at 15:10
  • @user143462 http://tex.stackexchange.com/questions/54088/annotating-a-pgfplots-graph http://tex.stackexchange.com/questions/75202/annotate-plots-in-tikz-pgfplots – R. Schumacher May 03 '15 at 17:13
  • To the first plot, I added clip=false, to the axis environment and \node at (axis cs:-3,6.66) [anchor=east] {\bf{a.)}};' to theTikZenvironment. To the second plot, I addedat={($(plot1.east)+(1cm,0)$)},to the axis environment. To the other environments, I addedat={($(plot1.south)-(0,1cm)$)},(orplot2.southorplot3.south) to their axis environments. Now, it has the appearance that I wanted. – user143462 May 03 '15 at 20:20