如何将 x 轴设置为相等?无缩放

如何将 x 轴设置为相等?无缩放

在下面的例子中,x 轴的范围从 0 开始直到 10。现在,我想要一个 x 轴,其中刻度不像数字那样缩放。我的意思是我想要绘制数据,其中我有 4 个刻度,它们标有相应的索引(1、2、3、10),但间隙都相同。

\documentclass{minimal}
\usepackage{pgfplots}

% example data file
\usepackage{filecontents}
\begin{filecontents}{datafile.dat}
    index value1 value2
    1 1 2
    2 2 3
    3 3 4
    10 4 5
\end{filecontents}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xlabel=index,
        ylabel=values,
        ]

        \addplot table[x=index,y=value1] {datafile.dat};
        \addplot table[x=index,y=value2] {datafile.dat};
    \end{axis}
\end{tikzpicture}
\end{document}

答案1

为了使刻度x-axis具有相同的间隙,想到的方法是像这样改变数据:

\begin{filecontents}{datafile.dat}
    index value1 value2
    1 1 2
    2 2 3
    3 3 4
    4 4 5
\end{filecontents}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[%
        %axis equal,
        xtick=\empty,
        extra x ticks={1,2,3,4},
        extra x tick labels={1,2,3,10},
        xlabel=index,
        ylabel=values,
        ]
        \addplot table[x=index,y=value1] {datafile.dat};
        \addplot table[x=index,y=value2] {datafile.dat};
    \end{axis}
\end{tikzpicture}

因此情节将会是这样的:

![在此处输入图片描述

请注意,我还在轴选项中添加了以下几行:

%axis equal,
xtick=\empty,
extra x ticks={1,2,3,4,5},
extra x tick labels={1,2,3,$\cdots$,10},

(您可以去掉%符号来查看轴刻度发生的情况,然后决定使用哪个选项)。


这是一个替代解决方案(我更喜欢):

在此处输入图片描述 使用代码

\begin{filecontents}{datafile.dat}
    index value1 value2
    1 1 2
    2 2 3
    3 3 4
    5 4 5
\end{filecontents}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[%
        axis equal,
        xtick=\empty,
        extra x ticks={1,2,3,4,5},
        extra x tick labels={1,2,3,$\cdots$,10},
        xlabel=index,
        ylabel=values,
        ]
        \addplot table[x=index,y=value1] {datafile.dat};
        \addplot table[x=index,y=value2] {datafile.dat};
    \end{axis}
\end{tikzpicture}

附言:建议在使用pgfplots软件包时始终在序言中包含以下行

\pgfplotsset{compat=1.15}

答案2

您可以在轴选项中添加xtick=data和。然后您可以在绘图选项中替换为,以获得xticklabels from table={datafile.dat}{index}x=indexx expr=\coordindex

在此处输入图片描述

代码:

\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}% current version is 1.15

% example data file
\usepackage{filecontents}
\begin{filecontents}{datafile.dat}
  index value1 value2
  1 1 2
  2 2 3
  3 3 4
  10 4 5
\end{filecontents}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    xlabel=index,
    ylabel=values,
    xtick=data,% <- added
    xticklabels from table={datafile.dat}{index}% <- added
    ]

    \addplot table[x expr=\coordindex,y=value1] {datafile.dat};% <- changed
    \addplot table[x expr=\coordindex,y=value2] {datafile.dat};% <- changed
  \end{axis}
\end{tikzpicture}
\end{document}

相关内容