我想要做的是显示一个函数在 (-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
您可以使用xticklabel
和yticklabel
来更改刻度的打印方式。例如,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}