PGFplots xaxis 使用精确值而不是比例

PGFplots xaxis 使用精确值而不是比例

我有一张图表,其中 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}

在此处输入图片描述

相关内容