pgfplots:如何仅在 y 方向(但不在 x 方向)绘制 3D 图的网格?

pgfplots:如何仅在 y 方向(但不在 x 方向)绘制 3D 图的网格?

假设我们用 绘制一个简单的 3D 图pgfplots


最小工作示例(MWE):

\documentclass{standalone}
\usepackage{pgfplots,pgfplotstable}
\usepackage{filecontents}

\begin{filecontents}{testdata.csv}
    x;y;z
    0;0;4
    0;1;4
    0;2;4
    1;0;3
    1;1;3
    1;2;3
    2;0;2
    2;1;2
    2;2;2
    3;0;1
    3;1;1
    3;2;1
\end{filecontents}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[table/col sep = semicolon]
            \addplot3[mesh, scatter, mesh/cols=3] table[x=x, y=y, z=z] {testdata.csv};
        \end{axis}
    \end{tikzpicture}
\end{document}

结果截图:

结果截图


问题:

  • 是否可以mesh只绘制 iny方向,而不绘制 inx方向?您可以在下一个屏幕截图中看到所需的结果
  • 可以保留mesh取决于-value 的颜色z

所需状态的屏幕截图:

所需状态的屏幕截图

答案1

您可以循环播放普通的情节。

\documentclass{standalone}
\usepackage{pgfplots,pgfplotstable}
\usepackage{filecontents}

\begin{filecontents}{testdata.csv}
    x;y;z
    0;0;4
    0;1;4
    0;2;4
    1;0;3
    1;1;3
    1;2;3
    2;0;2
    2;1;2
    2;2;2
    3;0;1
    3;1;1
    3;2;1
\end{filecontents}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[table/col sep = semicolon]
            \pgfplotsinvokeforeach{0,...,3}
            {\addplot3[scatter,%mesh, scatter, mesh/cols=3,
             %x filter/.expression={x == #1 ? x : nan}
             restrict x to domain=#1:#1] table[x=x, y=y, z=z] {testdata.csv};
            }
        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

如果你想保留线条的颜色,你可以这样做

\documentclass{standalone}
\usepackage{pgfplots,pgfplotstable}
\usepackage{filecontents}

\begin{filecontents}{testdata.csv}
    x;y;z
    0;0;4
    0;1;4
    0;2;4
    1;0;3
    1;1;3
    1;2;3
    2;0;2
    2;1;2
    2;2;2
    3;0;1
    3;1;1
    3;2;1
\end{filecontents}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[table/col sep = semicolon]
            \pgfplotsinvokeforeach{0,...,3}
            {\addplot3[scatter,mesh, scatter, mesh/cols=1,
             %x filter/.expression={x == #1 ? x : nan}
             restrict x to domain=#1:#1
             ] table[x=x, y=y, z=z] {testdata.csv};
            }
        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容