是否可以将 3D 图表从 MatPlotLib 导出到 TikZ?
Is it possible to export 3D charts from MatPlotLib to TikZ?
我正在尝试使用 import tikzplotlib
将 3D 图从 Matplotlib
导出到 TikZ
。这是在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
?
两个问题的答案都是是。
第一个问题是您在 show
之后保存图形, 消耗 绘图,然后保存一个空的新绘图。当您删除以下行时,该图将被导出:
plt.show()
但是,第二个问题确实不支持3d图。见 the tikzplotlib documentation:
Of course, not all figures produced by matplotlib can be converted
without error. Notably, 3D plots don't work.
上面示例的输出如下所示,tikz 输出是二维图。所以没有快速的解决方案将其变成所需的情节:
我正在尝试使用 import tikzplotlib
将 3D 图从 Matplotlib
导出到 TikZ
。这是在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
?
两个问题的答案都是是。
第一个问题是您在 show
之后保存图形, 消耗 绘图,然后保存一个空的新绘图。当您删除以下行时,该图将被导出:
plt.show()
但是,第二个问题确实不支持3d图。见 the tikzplotlib documentation:
Of course, not all figures produced by matplotlib can be converted without error. Notably, 3D plots don't work.
上面示例的输出如下所示,tikz 输出是二维图。所以没有快速的解决方案将其变成所需的情节: