我想绘制一条曲线,例如 y=1-e^{-x},将 x 轴的值 1,2... 映射到 x1,x2... 上,将 y 轴的值 1,2... 映射到 y1,y2... 上。
我只知道如何定义符号轴值:
\documentclass{article}
\usepackage{graphicx}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.15}
\usepackage{physics}
\usepackage{amsmath, amssymb, amsfonts}
\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,$y_1$, $y_2$, $y_3$, $y_4$},
ymin={[normalized]0},
ymax={[normalized]5},
ytickmax={[normalized]4},
ytick distance=1]
\end{axis}
\end{tikzpicture}
\end{document}
先感谢您。
答案1
您可以更改刻度标签,而不是使用符号坐标。下面我保留了代码中的xtick distance
/ ,但我删除了与符号坐标相关的所有内容,并设置ytick distance
xticklabel={$x_{\pgfmathprintnumber[precision=0]{\tick}}$},
yticklabel={$y_{\pgfmathprintnumber[precision=0]{\tick}}$}
按照您说的制作刻度标签。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.15}
\usepackage{physics}
\usepackage{amsmath, amssymb, amsfonts}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel={$x$},
ylabel={$y$},
axis lines=center,
xtick distance=1,
ytick distance=1,
xmin=0,xmax=5,
ymin=0,ymax=5,
xticklabel={$x_{\pgfmathprintnumber[precision=0]{\tick}}$},
yticklabel={$y_{\pgfmathprintnumber[precision=0]{\tick}}$}
]
\addplot +[mark=none,smooth] {1-e^(-x)};
\end{axis}
\end{tikzpicture}
\end{document}