pgfplots:3D 表面的条件绘图

pgfplots:3D 表面的条件绘图

考虑以下数据

3.1 1   21.8
3.1 0.98    19.16666667
3.1 0.96    17.83333333
3.1 0.94    16.16666667
3.1 0.92    15.5
3.1 0.9 14.83333333
3.1 0.88    14.16666667
3.1 0.86    13.5
3.1 0.84    12.83333333
3.1 0.82    12.16666667
3.1 0.8 12.16666667
3.1 0.78    11.5
3.1 0.76    100
3.1 0.74    100

3.3 1   21.83333333
3.3 0.98    20.5
3.3 0.96    18.5
3.3 0.94    16.83333333
3.3 0.92    15.5
3.3 0.9 14.83333333
3.3 0.88    14.16666667
3.3 0.86    13.5
3.3 0.84    12.83333333
3.3 0.82    12.16666667
3.3 0.8 12.16666667
3.3 0.78    11.5
3.3 0.76    11.5
3.3 0.74    11.5

3.5 1   21.83333333
3.5 0.98    20.5
3.5 0.96    18.5
3.5 0.94    17.16666667
3.5 0.92    15.5
3.5 0.9 14.83333333
3.5 0.88    14.16666667
3.5 0.86    13.5
3.5 0.84    12.83333333
3.5 0.82    12.16666667
3.5 0.8 12.16666667
3.5 0.78    11.5
3.5 0.76    11.5
3.5 0.74    11.5

其中第一列是x值,第二列是y值,第三列是z值。

如何在制定隐藏/删除z值等于 100 的表面区域的条件的同时绘制 3D 表面?

答案1

作为菲利佩问题下方的评论中已经链接了,关键是添加选项unbounded coords=jump。然后剩下的就是将转移100NaN。有关详细信息,请查看代码中的注释。

% used PGFPlots v1.15
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
%        view={0}{90},
        % you need to add this to get the desired result
        unbounded coords=jump,
    ]
        \addplot3 [
            surf,
        ] table [
            x=x,
            y=y,
            % use an expression to state that z values of 100 should be ignored
            z expr={\thisrow{z} == 100 ? NaN : \thisrow{z}},
        ] {
            x   y       z
            3.1 1.00    21.8
            3.1 0.98    19.16666667
            3.1 0.96    17.83333333
            3.1 0.94    16.16666667
            3.1 0.92    15.5
            3.1 0.90    14.83333333
            3.1 0.88    14.16666667
            3.1 0.86    13.5
            3.1 0.84    12.83333333
            3.1 0.82    12.16666667
            3.1 0.80    12.16666667
            3.1 0.78    11.5
            3.1 0.76    100
            3.1 0.74    100

            3.3 1       21.83333333
            3.3 0.98    20.5
            3.3 0.96    18.5
            3.3 0.94    16.83333333
            3.3 0.92    15.5
            3.3 0.9     14.83333333
            3.3 0.88    14.16666667
            3.3 0.86    13.5
            3.3 0.84    12.83333333
            3.3 0.82    12.16666667
            3.3 0.8     12.16666667
            3.3 0.78    11.5
            3.3 0.76    11.5
            3.3 0.74    11.5

            3.5 1       21.83333333
            3.5 0.98    20.5
            3.5 0.96    18.5
            3.5 0.94    17.16666667
            3.5 0.92    15.5
            3.5 0.9     14.83333333
            3.5 0.88    14.16666667
            3.5 0.86    13.5
            3.5 0.84    12.83333333
            3.5 0.82    12.16666667
            3.5 0.8     12.16666667
            3.5 0.78    11.5
            3.5 0.76    11.5
            3.5 0.74    11.5
        };
    \end{axis}
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容