Pgfplots,反向 y 方向在 3D 矩阵图中无效

Pgfplots,反向 y 方向在 3D 矩阵图中无效

在 PGFPlots 手册中,矩阵图未列在 3D 绘图类型中。然而,它们似乎工作得很好,尤其是绘制平面数据,除了显然y dir=reverse没有效果的选项。这是一个 MVE:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      \addplot3 [matrix plot, point meta=explicit] table[meta=c] {
        x y z c
        0 0 0 1.0
        1 0 0 2.0

        0 1 0 3.0
        1 1 0 4.0
      };
    \end{axis}
  \end{tikzpicture}
  \begin{tikzpicture}
    \begin{axis}[y dir=reverse]
      \addplot3 [matrix plot, point meta=explicit] table[meta=c] {
        x y z c
        0 0 0 1.0
        1 0 0 2.0

        0 1 0 3.0
        1 1 0 4.0
      };
    \end{axis}
  \end{tikzpicture}
\end{document}

Y 轴反转不起作用

这两个图完全相同,除了y dir=reverse,它没有任何效果。请注意,x dir=reversez dir=reverse确实按预期工作,这个怪癖似乎是 独有的y dir。在这里可以做什么来反转 y 轴?

我试过:

  • 使用yscale=-1,它会翻转整个图表。
  • 在中使用负值unit vector ratio,这是行不通的(比例完全被破坏)。
  • 使用反转ymin/ymax范围,但会导致可见范围为空。

答案1

matrix plot在手册的第 174-178 页有描述。请参阅手册了解“为什么” - 以下是关于“如何”的重要部分:

...矩阵图隐式设置选项 \pgfplotsset{ y dir=reverse, axis on top, }

...

matrix plot*如果您更喜欢其他值,您可以并且应该使用不会以任何方式重新配置轴的星号版本 。

结果:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
  \begin{tikzpicture}
    \begin{axis}
      \addplot3 [matrix plot, point meta=explicit] table[meta=c] {
        x y z c
        0 0 0 1.0
        1 0 0 2.0

        0 1 0 3.0
        1 1 0 4.0
      };
    \end{axis}
  \end{tikzpicture}
  \begin{tikzpicture}
    \begin{axis}
      \addplot3 [matrix plot*, point meta=explicit] table[meta=c] {
        x y z c
        0 0 0 1.0
        1 0 0 2.0

        0 1 0 3.0
        1 1 0 4.0
      };
    \end{axis}
  \end{tikzpicture}
\end{document}

两个矩阵图,其中一个 y 轴反转

相关内容