pgfplots 中的 \addplot3 绘制超出轴限制的数据

pgfplots 中的 \addplot3 绘制超出轴限制的数据

pgfplots用于 3D 图形并从表中读取数据时,有没有办法截断数据轴限值在环境中指定axis

以下是 MWE:

\documentclass[tikz]{standalone}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[%
        width=16cm,height=8cm,
        view={-45}{65},
        scale only axis,
        xmin=200,xmax=500,
        xlabel={data1},
        ymin=0,ymax=80,
        ylabel={data2},
        zmin=0,zmax=1,
        zlabel={data3},
    ]
    \addplot3 table[row sep=crcr] {
            250 0 0\\
            250 25 0.2\\
            250 50 0.3\\
            250 75 0.2\\
            250 100 0\\
        };
    \addplot3 table[row sep=crcr] {
            450 0 0.5\\
            450 25 0.1\\
            450 50 0\\
            450 75 0.1\\
            450 100 0.5\\
        };
    \end{axis}
\end{tikzpicture}%
\end{document}

在此示例中,ydata每个表的 最高为100,而选项ymax中指定的值为。在这种情况下,输出如下所示:axis80

MWE 输出

请注意绘制的线条如何超出规定的轴限。有没有办法读取某个值(在本例中ymax)的数据,或者在环境中指定一个选项axis以避免显示超出轴限的曲线?

答案1

您可以通过设置来过滤掉超出轴范围的坐标restrict y to domain=0:80

\documentclass[tikz, border=5mm]{standalone}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[%
        width=16cm,height=8cm,
        view={-45}{65},
        scale only axis,
        xmin=200,xmax=500,
        xlabel={data1},
        ymin=0,ymax=80, restrict y to domain=0:80,
        ylabel={data2},
        zmin=0,zmax=1,
        zlabel={data3},
    ]
    \addplot3 table[row sep=crcr] {
            250 0 0\\
            250 25 0.2\\
            250 50 0.3\\
            250 75 0.2\\
            250 100 0\\
        };
    \addplot3 table[row sep=crcr] {
            450 0 0.5\\
            450 25 0.1\\
            450 50 0\\
            450 75 0.1\\
            450 100 0.5\\
        };
    \end{axis}
\end{tikzpicture}%
\end{document}

相关内容