Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 制作线框多边形_Python_Matplotlib - Fatal编程技术网

Python 制作线框多边形

Python 制作线框多边形,python,matplotlib,Python,Matplotlib,我想制作一些图表,以帮助我正在辅导的一些微积分学生更好地可视化他们找到的固体体积。例如,一个问题是求三角棱锥体的体积 下面是一些生成金字塔两侧的工作代码,但您无法区分一侧的结束位置和另一侧的开始位置。如何将其转换为线框以使实体更易于识别?或者,我如何用不同的颜色给表面上色以使图形更可见 具体来说,我不明白如何制作三角形网格。或者,我想制作连接到每个点的线就足够了 import numpy as np import matplotlib.pyplot as plot from mpl_toolki

我想制作一些图表,以帮助我正在辅导的一些微积分学生更好地可视化他们找到的固体体积。例如,一个问题是求三角棱锥体的体积

下面是一些生成金字塔两侧的工作代码,但您无法区分一侧的结束位置和另一侧的开始位置。如何将其转换为线框以使实体更易于识别?或者,我如何用不同的颜色给表面上色以使图形更可见

具体来说,我不明白如何制作三角形网格。或者,我想制作连接到每个点的线就足够了

import numpy as np
import matplotlib.pyplot as plot
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection

fig = plot.figure()
ax = Axes3D(fig)

A=[0,0,0]
B=[1,1,0]
C=[0,1,1]
D=[0,1,0]

verts=[[A,B,C],
       [A,B,D],
       [A,D,C],
       [B,C,D]]

ax.add_collection3d(Poly3DCollection(verts))
ax.view_init(azim=-45)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z') 
plot.show()
由此得出的数字:


如果要显示形状的边缘,可以在创建
Poly3DCollection

Poly3DCollection(verts, lw=2)

另外,指定一些可能有助于可视化

Poly3DCollection(verts, facecolor=(0,0,1,0.2), linewidth=2, edgecolor=(0,0,0))

也可以使用该特性为每个面指定不同的颜色

Poly3DCollection(verts, lw=2, facecolors=['r', 'g', 'b', 'k'])

你的第二张照片正是我想要的。当我将
lw=2
alpha=.5
添加到代码中时,图形不受影响。你知道为什么会发生这种情况吗?@K.Shores,你只是将它添加到
Poly3DCollection
的创建中?是的。我将行从
ax.add_collection3d(Poly3DCollection(verts))
更改为
ax.add_collection3d(Poly3DCollection(verts,lw=2,alpha=0.5))
@K.Shores您只是将其可视化还是将其保存到外部文件中?我正在使用
plot.savefig(“example.png”)
将其保存到外部文件中。注意:我正在运行以生成文件
example.png
的代码中没有出现行
plot.show()