考虑下面的 MWE。此示例来自 PGF 绘图库,添加了 1 个异常值 (1000,50),从而得到下面的第一个(错误)屏幕截图。
我想限制域/轴,所以我得到了类似第二张截图的东西但 (1000,50) 坐标仍在源中。
我尝试改变轴和绘图域(并添加轴标签):
\begin{axis}[ymin=0,ymax=1,xmin=0,xmax=1,thick,xlabel=x,ylabel=y]
和:
\addplot+[domain=0:1,...
这对于这种类型的图不起作用。但是,这对于其他图(例如函数图)有效。我该如何让它工作?
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot+[black,const plot,mark=none]
coordinates
{(0,0.1) (0.1,0.15) (0.2,0.5) (0.3,0.62)
(0.4,0.56) (0.5,0.58) (0.6,0.65) (0.7,0.6)
(0.8,0.58) (0.9,0.55) (1,0.52) (1000,50) };
\end{axis}
\end{tikzpicture}
\end{document}
答案1
xmin=0, xmax=1
在您的示例中设置时,我收到dimension too large
错误。发生这种情况是因为1000,50
即使该点位于可见轴域之外,它仍会被处理,并导致溢出错误。要解决此问题,请设置restrict x to domain=0:1
。该键指定 x 坐标超出指定范围的点将被过滤掉,而无需进一步处理:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=0, xmax=1, restrict x to domain=0:1]
\addplot+[black,const plot,mark=none]
coordinates
{(0,0.1) (0.1,0.15) (0.2,0.5) (0.3,0.62)
(0.4,0.56) (0.5,0.58) (0.6,0.65) (0.7,0.6)
(0.8,0.58) (0.9,0.55) (1,0.52) (1000,50) };
\end{axis}
\end{tikzpicture}
\end{document}