# PGFplots axis scale and value manipulation

I'm a tikz-pgf beginner and try to do two simple things:

1. i have x-values between 2^20 and 2^30 (the size, always a power of two). How can i modify the xticks respectivly (not having a power of ten)?
2. each and very y-value should be divided by (size/1024) automatically (in gnuplot it would look like: ($8):($9/($8/1024)), iff$8:=size and $9:=time) My minimal code example looks like:  \documentclass{minimal} \usepackage{pgfplots} \begin{document} \begin{tikzpicture} \begin{axis} [ xmode = log, xlabel=size in bytes, ylabel=time in$\frac{s}{KiB}$] \pgfplotstableread{datafile} \datatable \addplot table[x = size, y = time] from \datatable ; \end{axis} \end{tikzpicture} \end{document}  What's the simplest way to do this? ## 1 Answer You can use the log basis x key to define the logarithm with respect to 2. \documentclass{article} \usepackage{pgfplots} \pgfplotsset{compat=1.7} \begin{document} \begin{tikzpicture} \begin{axis} [ xmode = log, log basis x=2, xlabel=size in bytes, ylabel=time in$\frac{s}{KiB}\$
]

%\datatable

\addplot table[x = size, y expr= \thisrow{time}/(\thisrow{size}/1024)] {
size time
1048576   1024
8388608   2048
67108864  4096
536870912 8192
};
\end{axis}
\end{tikzpicture}

\end{document}


• \pgfplotsset{compat=newest} would be a bit more universal, just to increase compatibility with different versions of pgfplots. Commented Mar 26, 2013 at 14:13
• @bobb_the_builder It would make your code prone to breakdowns if a new version removes an existing feature. It's a good practice to keep the compat to the version you have made the code. As it happend here just today tex.stackexchange.com/questions/104349/… :) Commented Mar 26, 2013 at 14:14
• ouch, sorry, good point! (+1) Commented Mar 26, 2013 at 14:25