PGFplots 轴刻度和值操作

PGFplots 轴刻度和值操作

我是 tikz-pgf 初学者,尝试做两件简单的事情:

  1. 我的 x 值介于 2^20 和 2^30 之间(大小始终是 2 的幂)。我如何分别修改 xticks(不是 10 的幂)?
  2. 每个 y 值都应自动除以 (size/1024)(在 gnuplot 中它看起来像: ($8):($9/($8/1024)),当且仅当 $8:=size 且 $9:=time)

我的最小代码示例如下:

    \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}

做到这一点最简单的方法是什么?

答案1

您可以使用log basis x键来定义相对于 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}

在此处输入图片描述

相关内容