我有一张图表,其中 xaxis 的值是 2 的幂。PGFplots 会自动更改 x 标签。我希望它使用精确的值。我应该使用哪个选项?
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pagestyle{empty}
\begin{document}
\pgfplotstableread
{
thread speedup
1 1
2 3
4 5
8 7
16 7
32 7
64 8
128 9
}\datafile
\begin{tikzpicture}
\begin{axis}
[
title=test
,xlabel=size
,ylabel=Througput
]
\addplot table[x=thread,y=speedup,color=red,mark=x] {\datafile};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
如果添加,xtick=data
则只有数据点被视为刻度值。然后你得到
相反,您可以使用对数轴来表示x
值,并通过添加键将对数底数更改为 2 log basis x
。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\pgfplotstableread
{
thread speedup
1 1
2 3
4 5
8 7
16 7
32 7
64 8
128 9
}\datafile
\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}
[
title=test
,xlabel=size
,ylabel=Througput,xtick=data,log basis x=2
]
\addplot table[x=thread,y=speedup,color=red,mark=x] {\datafile};
\end{semilogxaxis}
\end{tikzpicture}
\end{document}