假设我们用 绘制一个简单的 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}