# Pgfplots with custom axis markers

Assume you have a trigonometric function, say for simplicity sin(x). When plotting the function, how can one place the x-axis markers on 0, pi/2, pi, 3pi/2, 2pi, instead of the default numeric values that pgfplots uses?

-
Related question: axis with trigonometric labels in pgfplots –  Peter Grill Nov 15 '11 at 19:51

Use \xtick to specify where you want the ticks, and \xticklabels to specify the corresponding labels.

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis x line=center,
axis y line=middle,
xtick={0,1.5708,3.14159,4.7123889},
xticklabels={$0$,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$},
domain=0:2*pi
]
\end{axis}
\end{tikzpicture}
\end{document}


If you don't want a label a particular tick mark, just leave that one blank. For example, if you did not want the label at pi you would replace the line with xticklabels={$0$,$\frac{\pi}{2}$,,$\frac{3\pi}{2}$}.

-
This code puts the labels at the wrong places. –  Celil Jul 22 '11 at 0:20
@celil: Can you clarify what you mean. The location looks correct to me. I see that you asked for one at 2pi, so do you mean that the above example is missing that? If so, you can just add one more label. –  Peter Grill Jul 22 '11 at 0:57
I take my comment back. For some reason when I compiled before, the x-axis ticks did not correspond to the correct positions, but now the ticks are at the correct positions. –  Celil Jul 24 '11 at 21:06
Am i wrong or the thick mark at 0 does not show up? –  mmj Jun 18 '13 at 17:30
@mmj: Hmmm... Appears as if you are correct. Perhaps you should post a follow up question. –  Peter Grill Jun 19 '13 at 0:04

You can specify the position of the ticks using the xtick and scaled x ticks options. Example:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xtick={0,1.5708,...,10},domain=0:2*pi,scaled x ticks={real:3.1415},
xtick scale label code/.code={$\cdot \pi$}]
\end{axis}
\end{tikzpicture}
\end{document}


Taken from page 183 of the manual.

-

Using gnuplot, I suggest the following:

\documentclass{minimal}
\usepackage{tikz}
% GNUPLOT required
\begin{document}
\begin{center}
\begin{tikzpicture}[domain=0:6.3]
\foreach \x/\xtext in {0/0, 0.5*pi/\frac{\pi}{2} ,pi/\pi,
1.5*pi/\frac{3\pi}{2}, 2*pi/2\pi}
\draw[shift={(\x,0)}] (0pt,2pt) -- (0pt,-2pt) node[below] {$\xtext$};
\draw[very thin,color=gray] (-0.1,-1.1) grid (2*pi,1.1);
\draw[color=blue] plot[id=sin] function{sin(x)} node[right] {$f(x) = \sin x$};
\end{tikzpicture}
\end{center}
\end{document}


Which is maybe simpler. Maybe not... I'm using explicit representation of the axis' labels.

-