![Pgfplots,反向 y 方向在 3D 矩阵图中无效](https://linux22.com/image/449076/Pgfplots%EF%BC%8C%E5%8F%8D%E5%90%91%20y%20%E6%96%B9%E5%90%91%E5%9C%A8%203D%20%E7%9F%A9%E9%98%B5%E5%9B%BE%E4%B8%AD%E6%97%A0%E6%95%88.png)
在 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 dir=reverse
,它没有任何效果。请注意,x dir=reverse
和z 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}