答案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}