首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python在PDF 3D中保存3D绘图

使用Python在PDF 3D中保存3D绘图
EN

Stack Overflow用户
提问于 2016-02-19 23:16:14
回答 2查看 4.6K关注 0票数 10

我已经用python和pyplot生成了一个3D图。我能够将此图导出为PDF。这很无聊而且有时..。平面三维打印可能很难阅读/理解。

但是,PDF支持交互式3D模型,如CAD模型。这让我想知道是否有可能将matplotlib或类似的东西生成的3D绘图导出为3D PDF?这将是惊人的存储美丽的3D绘图!如果是这样,我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2016-02-20 01:35:54

与其说是一个答案,不如说是对我目前研究的总结:

  • a previous question问了几乎相同的问题,但结果是conclusion
  • .pdf不支持两种内部3d格式- u3d (从版本7开始)和prc (从版本8开始)。(reference)
  • (Dec是一种更复杂但更紧凑的格式。
  • (c. 2006):Acrobat 3d支持更多的格式-超过40种-但要做到这一点,需要将它们转换为u3d以便导入

( 2013):matplotlib的绘图核心只是2d;mplot3d只是一种变通方法,所有内容在渲染之前都投影到2d。(reference)链接到GlumPy

目前,我认为有两种可能的方法:

  • 将matplotlib的新3d输出引擎写入u3d
  • 将matplotlib的3d渲染器写入OpenGL (Acrobat 3d可以捕获活动OpenGL帧的内容)
票数 7
EN

Stack Overflow用户

发布于 2020-09-04 18:41:07

我认为如果你想使用rasterized=True,最好打开彩色素材,否则有时图形尺寸可能太大,无法完成:

3D打印的一个示例:

代码语言:javascript
复制
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()
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35508633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档