如何使用 pgfplots 向三维图添加灰色网格线?

如何使用 pgfplots 向三维图添加灰色网格线?

我正在尝试使用pgfplots来绘制三维空间。使用以下代码,我可以显示轴,并且我知道如何添加坐标和节点以及一些其他对象:

\documentclass [border = .2cm] {standalone}

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

\begin{document}

\begin{tikzpicture}

\begin{axis} [
    axis lines*=middle,
    grid style={line width=3pt},%, draw=gray!40},
    major grid style={line width=4pt},%,draw=gray!90},
    xmin=-10,xmax=10,
    ymin=-10,ymax=10,
    zmin=-10,zmax=10,
    xtick={0},
    ytick={0},
    ztick={0},
    ]
    
\end{axis}

\end{tikzpicture}

\end{document}

该代码产生如下结果:

在此处输入图片描述

但我希望主轴线以外的其他网格线显示为灰色。我不知道该如何更清楚地表达这一点——基本上我想要的是这样的:

在此处输入图片描述

忽略轴的刻度标记和标签——我所关心的只是重现灰色坐标线坐标平面。我已经看过了文档,pgfplots但还是搞不清楚我遗漏了什么。如果可能的话,我也有兴趣绘制网格飞机也是。

答案1

\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis lines*=middle,
xmin=-10, xmax=10,
ymin=-10, ymax=10,
zmin=-10, zmax=10,
ticks=none,
axis on top,
]
\addplot3[mesh, gray!40, domain=-8:8, samples=11, domain y=-8:8, samples y=11, forget plot] {0};
\end{axis}
\end{tikzpicture}
\end{document}

xy 平面上有网格的 3D 轴

答案2

有了这种差距,我认为唯一的解决方案是绘制一个表面或矩形路径来模拟网格,您可以轻松地使用颜色、不透明度等。这是两者的示例,您还可以显示所需的所有平面。(使用@hpekristiansen 答案进行调整)

\documentclass [border = .2cm] {standalone}

\usepackage{xcolor}
\usepackage{pgfplots}
\pgfplotsset{compat = newest}
\usepgfplotslibrary{patchplots}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
  view={35}{15},
  axis lines=center,
  xtick={false},ytick={false},ztick={false},
  width=15cm,height=15cm,
  xmin=-10,xmax=10,ymin=-10,ymax=10,zmin=-10,zmax=10,
  xlabel={$x$},ylabel={$y$},zlabel={$z$},
  axis on top,
 ]
\addplot3 [patch, patch refines=4, patch type=rectangle, white, faceted color=red!50 ]  coordinates {(-8,0,8) (8,0,8) (8,0,-8) (-8,0,-8)};
\addplot3[mesh, gray!50, domain=-8:8, samples=17, domain y=-8:8, samples y=17] {0}; 
\end{axis}
\end{tikzpicture}

\end{document}

\end{document}

在此处输入图片描述

相关内容