是否可以将 3D 图表从 MatPlotLib 导出到 TikZ?

问题描述

我正在尝试使用 Matplotlib 将 3D 图表从 TikZ 导出到 import tikzplotlib。这是在 Jupyter NoteBook 中执行的代码

from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection='3d')
z = np.linspace(0,1,100)
x = z * np.sin(20 * z)
y = z * np.cos(20 * z)
ax.plot3D(x,y,z,'gray')
ax.set_title('Intentando con 3D')
plt.show()

import tikzplotlib

tikzplotlib.save("papon.tex")
tikzplotlib.Flavors.latex.preamble()

生成papon.tex 文件在编译时显示如下:

% This file was created by tikzplotlib v0.9.8.
\begin{tikzpicture}

\end{tikzpicture}

缺少任何配置或代码修改?或者,简单地说,是否无法将具有这些特征的 3D 图表正确导出到 TikZ

解决方法

这两个问题的答案都是

第一个问题是您在 <template> <v-container id="title" fill-height style="height: 100vh"> <v-row align="center" justify="center"> <v-col cols="12"> <Logo /> </v-col> </v-row> </v-container> </template> <script> import Logo from "../components/logo.vue"; export default { name: "Title",components: { Logo,},}; </script> 之后保存图形,它消耗该图,然后保存一个空的新图。当您删除以下行时,该图将被导出:

show

然而,第二个问题是确实不支持3d绘图。见the tikzplotlib documentation

当然不是所有matplotlib生成的图形都可以转换 没有错误。值得注意的是,3D plots don't work

上面示例的输出如下所示,tikz 输出是二维图。所以没有快速的解决方案可以把它变成想要的图:

Example output