我正在尝试使用多个二维图形创建三维图,例如在三维图形中绘制多个二维函数。但最终结果如下:
使用\closedcycle
也无济于事,因为它会产生以下结果:
以下是第二张图的 MWE,数据集有所减少:
\documentclass[12pt]{article}
\usepackage{pgfplots,pgfplotstable}
\pgfplotsset{compat=1.7}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread{
q 1h 2h 3h 4h
0.01138 124.153702 119.550705 117.984253 115.065399
0.089615 4.255316 4.356256 4.253153 4.040073
0.129441 4.262549 3.756256 3.765975 4.120948
0.254584 2.837865 3.107194 2.983951 2.531952
0.298655 2.638327 2.848219 2.792608 2.729832
}\data
\begin{axis}[
zmode=log,
log origin z=0,
area plot/.style={
fill opacity=0.75,
draw=blue!70!violet,thick,
fill=blue!70!violet!50,
mark=none,
}
]
\pgfplotsinvokeforeach{4,3,2,1}{
\addplot3 [area plot] table [x=q, y expr=#1, z=#1h] {\data} \closedcycle;
}
\end{axis}
\end{tikzpicture}
\end{document}
我怎样才能把这件事弄清楚?
答案1
此问题已在现已发布的 PGFPlots v1.13 中得到解决。您的示例现在无需任何更改即可运行。
手册第 130 页第 4.6.3 节中还添加了类似的示例。
答案2
我不知道是否有错误。如果有,请将此作为解决方法;我在曲线中添加了冗余点并删除了轮廓线(代码如下)。
\documentclass[12pt]{article}
\usepackage{pgfplots,pgfplotstable}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread{
q 1h 2h 3h 4h
0.01138 124.153702 119.550705 117.984253 115.065399
0.089615 4.255316 4.356256 4.253153 4.040073
0.129441 4.262549 3.756256 3.765975 4.120948
0.254584 2.837865 3.107194 2.983951 2.531952
0.298655 2.638327 2.848219 2.792608 2.729832
0.298655 1 1 1 1
0.01138 1 1 1 1
0.01138 124.153702 119.550705 117.984253 115.065399
}\data
\begin{axis}[
zmode=log,
log origin z=0,
area plot/.style={
fill opacity=0.75,
draw=blue!70!violet,thick,
fill=blue!70!violet!50,
mark=none,
}
]
\pgfplotsinvokeforeach{4,3,2,1}{
\addplot3 [fill=blue, opacity=0.5,draw=none] table [x=q, y expr=#1, z=#1h] {\data} \closedcycle;
}
\end{axis}
\end{tikzpicture}
\end{document}