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.

I have a pgf plot. Now the scale on the x-axis is at the moment frequency, hz, but it should be rad/s to save myself time exporting the file again is it possible to multiply the x-coordinate of every data point with a certain factor easily in pgf plots? In this case 2*pi?

share|improve this question
add comment

2 Answers 2

up vote 10 down vote accepted

use x expr as in

\addplot table[x expr=\thisrowno{0}*2*pi, y index=1] {\table};

assuming that your abscissas are stored in the first column of a table loaded in the macro \table and your ordinates in the second.

More details are given on page 29 of the pgfplots manual.

share|improve this answer
add comment

Yes it is! From the pgfplots manual:

\documentclass{standalone}
\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}

enter image description here

The option of interest is the scaled x ticks={real:3.1415}, which tells pgfplots to scale the x values by a factor of 3.1415. You can switch off the "times PI" part below the axis by removing the xtick scale label code/.code={$\cdot \pi$} code.

share|improve this answer
1  
the OP wants to multiply the domain by a certain factor (2\pi), not to change the tick labels appearance. See Alfred M. answer (or x filter key from the manual). –  Luigi Oct 6 '12 at 14:17
    
But in the outcome, this should be the same, whether I scale the axis to show the "wrong" data points at the "right" x value or whether I multiply the values to get them to the right value, shouldn't it? –  Benedikt Bauer Oct 6 '12 at 14:22
    
Yes you are correct Benedikt, but that is not what I wanted. But thanks for your answer aswell :) –  WG- Oct 6 '12 at 14:26
1  
As far as I can see, the real:<num> scales the axis by dividing all the axis points by ``<num>´´. So if you want to end up with {2\pi}^2, you would have to scale the axis with 1/(2\pi)... –  Benedikt Bauer Oct 6 '12 at 14:45
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.