pgfplots“尺寸太大”,带有来自外部源的3D图形

pgfplots“尺寸太大”,带有来自外部源的3D图形

我想包含我在 R 中创建的 3D 图。该图是根据 pgfplots 手册中为 Matlab 提供的示例准备的。我裁剪了保存的 png 周围的空白,添加了透明度,并在 GIMP 中写下了选定点(绿色)的坐标。我还转换了 y 轴值,因为 GIMP 的原点在左上角,而 pgfplots 的原点在右下角。

然而,我明白了

! Dimension too large.
<recently read> \pgf@zx 

為錯誤。

相关代码在这里

\documentclass{article}

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

\begin{document}

\begin{tikzpicture}
\begin{axis}[
xmin=0,
xmax=0.05,
ymin=0,
ymax=0.05,
zmin=0,
zmax=2.3e-5
]
\addplot3[surf] graphics[
points={(0.045,0.01,1e-6) => (169,506-460)
(0.045,0.045,1e-6) => (399,506-410)
(0.01,0.01,2e-5) => (85,506-83)
(0.01,0.025,2e-5) => (185,506-69)}
] {Rplot};
\end{axis}
\end{tikzpicture}
\end{document}

R 中的原始图如下所示

在此处输入图片描述

GIMP 版本如下

在此处输入图片描述

对于那些喜欢玩的人,我上传了图片这里:

我做错了什么?我选错了点还是轴值太小了?

编辑:

我做了进一步调查,发现我必须定义角点,而不是任意点。也许我误读了那里的文档。所以现在我定义了原点 0,0,0,即图形的左上角、图形的左下角和右下角

\addplot3[] graphics[
points={
(0,0,0) => (15,525-300)
(0,0,2.2e-5) => (1,525-60)
(0.05,0,0) => (135,525-525)
(0.05,0.05,0) => (554,525-436)
%(0,0.02,2.2e-5) => (283,525-19)
}
] {Rplot08};

但是轴框现在看起来仍然扭曲了。左侧显示 pgfplots 版本,右侧显示 R 版本,它们一起打印在一份文档中。

我几乎要放弃这个问题了,直接把 R 中的图包含进来,尽管我真的不喜欢这个字体

在此处输入图片描述

答案1

最初选择的点违反了命令的期望\addplot3 graphics:它们在一个平面上(尝试通过所有四个点绘制一个平面)。

从数值上讲,这意味着底层线性系统虽然是 8x8 矩阵,但其秩为 6。可以通过添加以下内容来看到debug

\addplot3[] graphics[debug, ...

它会生成包含由你的点引起的视图矩阵的文件Rplot.dat。根据调试输出,矩阵是

canvasmapmatrix=[4.5e-2 0.0e0 1.0e-2 0.0e0 1.0e-6 0.0e0 1.0e0 0.0e0 
0.0e0 4.5e-2 0.0e0 1.0e-2 0.0e0 1.0e-6 0.0e0 1.0e0 
4.5e-2 0.0e0 4.5e-2 0.0e0 1.0e-6 0.0e0 1.0e0 0.0e0 
0.0e0 4.5e-2 0.0e0 4.5e-2 0.0e0 1.0e-6 0.0e0 1.0e0 
1.0e-2 0.0e0 1.0e-2 0.0e0 2.0e-5 0.0e0 1.0e0 0.0e0 
0.0e0 1.0e-2 0.0e0 1.0e-2 0.0e0 2.0e-5 0.0e0 1.0e0 
1.0e-2 0.0e0 2.5e-2 0.0e0 2.0e-5 0.0e0 1.0e0 0.0e0 
0.0e0 1.0e-2 0.0e0 2.5e-2 0.0e0 2.0e-5 0.0e0 1.0e0 
];

您可以复制粘贴此输出octave并输入

octave:3> rank(canvasmapmatrix )
ans =  6
octave:4> size(canvasmapmatrix )
ans =
   8   8

遗憾的是,pgfplots 不够智能,无法正确发出抱怨;它应该变得更加强大。


这解释了您最初的问题(“尺寸太大”)。此外,pgfplots 要求图形是正交的。更准确地说,它需要三个单位向量 x、y 和 z。支持透视投影是一项开放的功能请求。这解释了为什么它看起来与您的 R 图不同。

相关内容