5

I want to align these two plots horizontally:

 \begin{tikzpicture}
        \begin{axis}[
            xmin=1995,
            xmax=2010,
            ymode=log,
            xtick={1975,1980,...,2015},
            x tick label style={/pgf/number format/1000 sep=},
            xlabel={Year},
            ylabel={Cost of gene synthesis $(\$/base$)},
        ]
            \addplot coordinates {(1998,30) (2001,15) (2002,10) (2003,5) (2006,0) (2007,0.7)};
        \end{axis}
    \end{tikzpicture}

and

\begin{tikzpicture}
        \begin{axis}[
            xmin=1975,
            xmax=2010,
            ymode=log,
            xtick={1975,1980,...,2015},
            x tick label style={/pgf/number format/1000 sep=},
            xlabel={Year},
            ylabel={Length in base pairs},
        ]
            \addplot coordinates {(1978,207) (1990,2100) (1995,2700) (2003,7500) (2005,14600) (2006,32000) (2009,583000)};
        \end{axis}
    \end{tikzpicture}

I tried to use \subfigure but without success.

2 Answers 2

4

Here's how I would do it, using the subcaption package as you desired

screenshot

I took the liberty of moving your ylabel text into the caption. I set the width=\textwidth too.

You might like to explore scale only axis it's quite useful- I've left it in the preamble as a comment for you to play with.

% arara: pdflatex
% !arara: indent: {overwrite: true}
\documentclass{article}

\usepackage{pgfplots}
\usepackage{subcaption}

%\pgfplotsset{every axis/.append style={
%                    scale only axis,       % otherwise width won't be as intended: http://tex.stackexchange.com/questions/36297/pgfplots-how-can-i-scale-to-text-width
%                    }}

\begin{document}

\begin{figure}[!ht]
    \begin{subfigure}[t]{.5\textwidth}
        \begin{tikzpicture}
            \begin{axis}[
                    xmin=1995,
                    xmax=2010,
                    ymode=log,
                    xtick={1975,1980,...,2015},
                    x tick label style={/pgf/number format/1000 sep=},
                    xlabel={Year},
                    width=\textwidth,
                ]
                \addplot coordinates {(1998,30) (2001,15) (2002,10) (2003,5) (2006,0) (2007,0.7)};
            \end{axis}
        \end{tikzpicture}
        \caption{Cost of gene synthesis ($\$/base$)},
    \end{subfigure}%
    \begin{subfigure}[t]{.5\textwidth}
        \begin{tikzpicture}
            \begin{axis}[
                    xmin=1975,
                    xmax=2010,
                    ymode=log,
                    xtick={1975,1985,...,2015},
                    x tick label style={/pgf/number format/1000 sep=},
                    xlabel={Year},
                    width=\textwidth,
                ]
                \addplot coordinates {(1978,207) (1990,2100) (1995,2700) (2003,7500) (2005,14600) (2006,32000) (2009,583000)};
            \end{axis}
        \end{tikzpicture}
        \caption{Length in base pairs}
    \end{subfigure}%
\end{figure}
\end{document}
2
  • Thank you, I am experiencing now a new problem, I have to put the entire figure in two column article, and I want to center the figure as if the article was a single column because it compiles in rows in my 2-column article
    – microarm15
    Apr 6, 2013 at 10:33
  • 1
    @microarm15 that will probably be a new question- you might like to explore figure* :)
    – cmhughes
    Apr 6, 2013 at 19:56
2

I usually just place them together in a center environment:

\begin{center}
 \begin{tikzpicture} \begin{axis} ... \end{axis} \end{tikzpicture}
 \hfil
 \begin{tikzpicture} \begin{axis} ... \end{axis} \end{tikzpicture}
\end{center}

There is also \usepgfplots{groupplots} and its associated matrix-like arrangement, documented in Section 5.5 of the pgfplots manual.

2
  • Thank you, but unfortunately I faced the same problem, I have to remove the ylabel from the first graph and still the final plot in two stages
    – microarm15
    Apr 6, 2013 at 0:42
  • You're going to have to be more specific about both what you want and what your problem is, then.
    – Ryan Reich
    Apr 6, 2013 at 3:50

You must log in to answer this question.

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