Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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?

share|improve this question
1  
Related question: axis with trigonometric labels in pgfplots –  Peter Grill Nov 15 '11 at 19:51
add comment

3 Answers

up vote 13 down vote accepted

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
]
\addplot {sin(deg(x))};
\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}$}.

share|improve this answer
    
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
1  
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
show 2 more comments

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$}]
\addplot {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

Taken from page 183 of the manual.

share|improve this answer
add comment

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. The result

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.