我用python和pyplot生成了一个3D图。我可以将此图导出为PDF。这有点无聊,有时候。平面3D图很难阅读/理解。
但是,PDF支持3D模型,例如CAD模型。这让我想知道是否有可能将matplotlib或类似东西生成的3D绘图输出到3D PDF?这将是惊人的存储美丽的3D情节!如果是这样,我该怎么做?
答案 0 :(得分:5)
到目前为止,作为我的研究摘要的答案并非如此:
一个previous question问得几乎一样但没有得出结论
(c.2006):Acrobat 3d支持更多格式 - 超过40种 - 但是通过将它们转换为u3d进行导入(reference)
(2013年12月):matplotlib的绘图核心仅为2d; mplot3d只是一种解决方法,在渲染之前,所有内容都会被投射到2d。 (reference)链接到GlumPy?
目前,我看到两种可能的方法:
将matplotlib的新3d输出引擎写入u3d
将matplotlib的3d渲染器写入OpenGL(Acrobat 3d可以捕获活动的OpenGL帧的内容)
答案 1 :(得分:-1)
我相信,如果您想使用PDF,最好打开彩色rasterized=True
,否则有时图形尺寸可能太大而无法完成:
3D图的示例:
from mpl_toolkits import mplot3d
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(projection="3d")
z_line = np.linspace(0, 15, 1000)
x_line = np.cos(z_line)
y_line = np.sin(z_line)
ax.plot3D(x_line, y_line, z_line, 'gray')
z_points = 15 * np.random.random(100)
x_points = np.cos(z_points) + 0.1 * np.random.randn(100)
y_points = np.sin(z_points) + 0.1 * np.random.randn(100)
ax.scatter3D(x_points, y_points, z_points, c=z_points, cmap='hsv',rasterized=True);
plt.savefig('test2.pdf',format='pdf')
plt.show()