# LaTeX Plot Snippets

· Timo Denk

The LaTeX package tikz contains a set of commands that can render vector based graphs and plots. This post contains several examples which are intended to be used as a cut-and-paste boilerplate. Each sample comes with a screenshot and a snippet that contains the relevant parts of the LaTeX source code. The entire source code for each plot can be found in the appendix at the bottom of this post.

## Scatter Plot

\begin{tikzpicture}

\pgfplotsset{
scale only axis,
}

\begin{axis}[
xlabel=$A$,
ylabel=$B$,
]
coordinates{ % plot 1 data set
(0.31,0.28)
(0.24,0.50)
(0.52,0.1)
% more points...
}; \label{plot_one}

% plot 1 legend entry
\end{axis}

\end{tikzpicture}


## Line Chart

\begin{axis}[
xmin=0, xmax=2000,
ymin=0, ymax=1,
xtick distance=500,
xlabel=Iterations $n$,
ylabel=$\mathrm{RMSD}(\hat{\theta})$,
]
coordinates{ % plot 1 data set
(1,0.716)
(2,0.6686) % ...


## Two Y-Axes Chart

\begin{axis}[
axis y line*=left,
xlabel=$x$,
ylabel=$y_1$,
]
coordinates{
(.1,5)
(.2,10)
% more points
}; \label{plot_1_y1}

\end{axis}

\begin{axis}[
axis y line*=right,
axis x line=none,
ylabel=$y_2$,
]
coordinates{
(0.18,0.89)
(0.27,0.81)
% more points
}; \label{plot_1_y2}

\addlegendimage{/pgfplots/refstyle=plot_1_y1}\addlegendentry{$y_1$}
\addlegendimage{/pgfplots/refstyle=plot_1_y2}\addlegendentry{$y2$}
\end{axis}


## Function Graph

\begin{axis}[
xlabel=$x$,
ylabel=$y$,
samples=100,
]
\end{axis}


## 3D-Plot

\begin{axis}[
view={20}{10},
legend pos=outer north east,
xlabel=$A$,
ylabel=$B$,
zlabel=$\Gamma$,
xmin=5.5, xmax=11,
ymin=45.5, ymax=48,
zmin=0, zmax=7,
]

samples = 60,
samples y=0,
only marks,
mark=*,
]
coordinates {
(7.23756,45.9033456,5)
(8.712544,47.262364,4)
% more data
}; \label{c1}

## Histogram

\begin{axis}[
area style,
]
(0,.3)
% more data
};
\end{axis}


Further reading: Plenty of tikz examples can be found at http://www.texample.net/tikz/examples/

## Appendix

Below is the full source code used to generate the individual figures.

% simple scatter plot

\documentclass[11pt]{article}

% graphics
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=7.5cm,compat=1.12}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}

\pgfplotsset{
scale only axis,
}

\begin{axis}[
xlabel=$A$,
ylabel=$B$,
]
coordinates{ % plot 1 data set
(0.31,0.28)
(0.24,0.50)
(0.52,0.1)
% more points...
}; \label{plot_one}

% plot 1 legend entry
\end{axis}

\end{tikzpicture}

\end{document}

% line chart

\documentclass[11pt]{article}

% graphics
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=7.5cm,compat=1.12}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}

\pgfplotsset{
scale only axis,
}

\begin{axis}[
xmin=0, xmax=2000,
ymin=0, ymax=1,
xtick distance=500,
xlabel=Iterations $n$,
ylabel=$\mathrm{RMSD}(\hat{\theta})$,
]
coordinates{ % plot 1 data set
(10,0.28)
(200,0.50)
(900,0.1)
(1800,0.8)
% more points...
}; \label{plot_one}

% plot 1 legend entry
\end{axis}

\end{tikzpicture}

\end{document}

% chart with two y axes

\documentclass[11pt]{article}

% graphics
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=7.5cm,compat=1.12}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}

\pgfplotsset{
scale only axis,
}

\begin{axis}[
axis y line*=left,
xlabel=$x$,
ylabel=$y_1$,
]
coordinates{
(0.07310,1.44255)
(0.18587,2.54389)
(0.22764,1.65875)
(0.44484,0.76010)
(0.63280,0.51687)
(0.92936,0.23310)
(1.02960,3.24661)
% more points
}; \label{plot_1_y1}

\end{axis}

\begin{axis}[
axis y line*=right,
axis x line=none,
ylabel=$y_2$,
]

coordinates{
(0.06892,0.95942)
(0.16916,0.95942)
(0.34042,0.92901)
(0.58267,0.80740)
(0.82911,0.48984)
(0.94606,0.21283)
% more points
}; \label{plot_1_y2}

\addlegendimage{/pgfplots/refstyle=plot_1_y1}\addlegendentry{$y_1$}
\addlegendimage{/pgfplots/refstyle=plot_1_y2}\addlegendentry{$y2$}
\end{axis}

\end{tikzpicture}

\end{document}

% function graph

\documentclass[11pt]{article}

% graphics
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}

\pgfplotsset{
scale only axis,
}

\begin{axis}[
xlabel=$x$,
ylabel=$y$,
samples=100,
]
\end{axis}

\end{tikzpicture}

\end{document}

% 3d plot

\documentclass[11pt]{article}

% graphics
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
view={20}{10},
legend pos=outer north east,
height=10cm,
width=10cm,
xlabel=$A$,
ylabel=$B$,
zlabel=$Gamma$,
xmin=5.5, xmax=11,
ymin=45.5, ymax=48,
zmin=0, zmax=7,
]

samples = 60,
samples y=0,
only marks,
mark=*,
]
\coordinates {
(7.23756,45.9033456,5)
(8.712544,47.262364,4)
(9.164456,47.625645,7)
(6.864465,46.623465,5)
(8.775555,47.143243,6)
}; label{c1}

samples = 60,
samples y=0,
only marks,
mark=triangle,
]
\coordinates {
(7.6623466,47.8684567,1)
(7.7534556,47.7535345,1)
(7.2542366,47.6423454,1)
(7.6524454,47.0284520,1)
(6.9523543,46.6664323,1)
}; label{c2}

fill,
color=blue,
opacity=0.06,
]
\coordinates {
(5.5,45.5,1)
(5.5,48,1)
(11,48,1)
(11,45.5,1)
};

\addlegendimage{/pgfplots/refstyle=c1}addlegendentry{$C_1$}
\addlegendimage{/pgfplots/refstyle=c2}addlegendentry{$C_2$}
\end{axis}
\end{tikzpicture}

\end{document}

% histogram

\documentclass[11pt]{article}

% graphics
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{width=7.5cm,compat=1.12}
\usepgfplotslibrary{fillbetween}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
area style,
]
(0,.3)
(1,.5)
(2,.6)
(3,.5)
(4,.25)
(5,.1)
(6,.5)
(7,.25)
(8,.1)
};
\end{axis}
\end{tikzpicture}

\end{document}