如何在 pgfplots 中使用变量作为轴坐标?

如何在 pgfplots 中使用变量作为轴坐标?

我想要做的是显示一个函数在 (-p, p) 区间内具有周期性,我绘制的图表如下:

\begin{tikzpicture}
\begin{axis}[
    xlabel = $x$,
    ylabel = {$g(x)$},
    axis lines=middle, 
]
 axis lines=middle, 
\addplot [
    dashed,
    mark=*
    mark options={scale=2,solid},
    domain=-3:-1, 
    samples=100, 
    color=blue,
    ]
    {(x<-1)*(x+2)};
\addplot[excl] coordinates {(-1,1)};
\addplot [
    dashed,
    domain=1:3, 
    samples=100, 
    color=blue,
    ]
    { !(x<1)*(x-2) };
\addplot[excl] coordinates {(-1,-1)};
\addplot[excl] coordinates {(1,1)};
\addplot [
    domain=-1:1, 
    samples=100, 
    color=blue,
    ]
    {(!(x<-1) && (x<1))*x};
\addplot[excl] coordinates {(1,-1)};
\end{axis}
\end{tikzpicture}

有没有办法让我可以垂直和水平地指定 -p 等于 -1,并且 p 等于 1?

答案1

您可以使用xticklabelyticklabel来更改刻度的打印方式。例如,xticklabel={$\pgfmathprintnumber{\tick}p$}表示所讨论的 x 值(由 表示\tick)打印后跟p

如果十进制值的刻度p没问题,请删除以下行

xtick distance=1,
ytick distance=1

在此处输入图片描述

\documentclass[border=4mm]{standalone} 
\usepackage{pgfplots}
\tikzset{excl/.style={}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    xlabel = $x$,
    ylabel = {$g(x)$},
    axis lines=middle,
    xticklabel={$\pgfmathprintnumber{\tick}p$},
    yticklabel={$\pgfmathprintnumber{\tick}p$},
    xtick distance=1,
    ytick distance=1
]
 axis lines=middle, 
\addplot [
    dashed,
    mark=*
    mark options={scale=2,solid},
    domain=-3:-1, 
    samples=100, 
    color=blue,
    ]
    {(x<-1)*(x+2)};
\addplot[excl] coordinates {(-1,1)};
\addplot [
    dashed,
    domain=1:3, 
    samples=100, 
    color=blue,
    ]
    { !(x<1)*(x-2) };
\addplot[excl] coordinates {(-1,-1)};
\addplot[excl] coordinates {(1,1)};
\addplot [
    domain=-1:1, 
    samples=100, 
    color=blue,
    ]
    {(!(x<-1) && (x<1))*x};
\addplot[excl] coordinates {(1,-1)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容