符号轴值 - 奇怪的序列

符号轴值 - 奇怪的序列

我试图在 x 轴上获取符号值 x1、x2、x3、x4,在 y 轴上获取 C(x1),...,C(x4)。

\begin{tikzpicture}
    \begin{axis}[
        xlabel={$x$},
        ylabel={$y$},
        axis lines=center,
        symbolic x coords={$x_1$, $x_2$, $x_3$, $x_4$},
        symbolic y coords={$C(x_1)$, $C(x_2)$, $C(x_3)$,                
        $C(x_4)$}]
    \end{axis}
\end{tikzpicture}

但结果是:

在此处输入图片描述

我怎样才能得到正确的情节?

非常感谢。

答案1

以下 MWE

\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xlabel={$x$},
        ylabel={$y$},
        axis lines=center,
        %symbolic x coords={$x_1$,$x_2$,$x_3$, $x_4$},
        ]
    \end{axis}
\end{tikzpicture}
\end{document}

结果是

软件包 pgfplots 警告:您的轴有空范围(在 y 方向上)。将其替换为默认范围并清除所有图。在输入行 12。

在此处输入图片描述

symbolic x coords={$x_1$, $x_2$,$x_3$,$x_4$}表示$x_1$用作标准化值0$x_2$用作标准化值1。因此,添加此选项将用 替换刻度值 0.2 和 0.4,用 替换刻度值$x_1$0.6、0.8 和 1 $x_2$

在此处输入图片描述


如果期望的结果是

在此处输入图片描述

x您可以设置和的最小值和最大值y、刻度和刻度距离的最大值,并添加0到符号坐标中:

\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xlabel={$x$},
        ylabel={$y$},
        axis lines=center,
        symbolic x coords={0,$x_1$,$x_2$,$x_3$,$x_4$},
        xmin={[normalized]0},
        xmax={[normalized]5},
        xtickmax={[normalized]4},
        xtick distance=1,
        symbolic y coords={0,$C(x_1)$,$C(x_2)$,$C(x_3)$,$C(x_4)$},
        ymin={[normalized]0},
        ymax={[normalized]5},
        ytickmax={[normalized]4},
        ytick distance=1
        ]
    \end{axis}
\end{tikzpicture}
\end{document}

但这里也有一个没有符号坐标的建议:

\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xlabel={$x$},
        ylabel={$y$},
        axis lines=center,
        xmin=0,xmax=5,
        xtick={1,...,4},
        xticklabel={$x_{\pgfmathprintnumber[precision=0]{\tick}}$},
        ymin=0,ymax=5,
        ytick={1,...,4},
        yticklabel={$C(x_{\pgfmathprintnumber[precision=0]{\tick}})$},
        ]
    \end{axis}
\end{tikzpicture}
\end{document}

相关内容