我是 tikz-pgf 初学者,尝试做两件简单的事情:
- 我的 x 值介于 2^20 和 2^30 之间(大小始终是 2 的幂)。我如何分别修改 xticks(不是 10 的幂)?
- 每个 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}