4

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?

6

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}$ 
  ]

  %\pgfplotstableread{datafile}
  %\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}

enter image description here

  • \pgfplotsset{compat=newest} would be a bit more universal, just to increase compatibility with different versions of pgfplots. – Daniel F Mar 26 '13 at 14:13
  • 1
    @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/… :) – percusse Mar 26 '13 at 14:14
  • ouch, sorry, good point! (+1) – Daniel F Mar 26 '13 at 14:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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