python - 使用 matplotlib 绘制矩形长方体
问题描述
我想要的是由边界点组成的矩形长方体图。这是点的视觉效果,下面是我想要的简单视觉效果(但所有矩形,而不仅仅是绘制的一个)。
有没有一种简单的方法可以让线框连接每个点,或者填充点之间的空间,使每组点看起来像一个长方体?
我已经阅读了这个线程,当我尝试执行下面的代码时,我只是得到一个空图。但是,如果我在上述线程中执行代码,我会看到与它们相同的视觉效果。使用我的代码,我只是更改了变量,但什么也没看到。
#!/usr/bin/env python3
import meshio
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import numpy as np
import glob
import matplotlib.cm as cm
import matplotlib.ticker as ticker
import pandas as pd
import glob
files = sorted(glob.glob('/path/to/vtk/files/*.vtk'))
fig = plt.figure(figsize=(16,10)) #create figure entity
ax = Axes3D(fig)
colors = iter(cm.rainbow(np.linspace(0, 1, len(files))))
for fyle in files:
mesh = meshio.read(fyle)
pts = mesh.points.T
xmin, xmax = pts[0].min(), pts[0].max()
ymin, ymax = pts[1].min(), pts[1].max()
zmin, zmax = pts[2].min(), pts[2].max()
xc = [xmin, xmax, xmin, xmax, xmax, xmin, xmin, xmax]
yc = [ymin, ymin, ymax, ymax, ymin, ymin, ymax, ymax]
zc = [zmin, zmin, zmin, zmin, zmax, zmax, zmax, zmax]
verts = [list(zip(xc, yc, zc))]
ax.add_collection3d(Poly3DCollection(verts))
#coords = np.array((xc, yc, zc))
#ax.scatter(*coords, c=[next(colors)]) #plot of x,y,z points
plt.show(
解决方案
推荐阅读
- android - 不支持 Twilio 视频编解码器 H264
- datetime - 如何从给定的日期时间开始倒计时到 24 小时颤动?
- github - 为什么我会得到很多远程:当推送到 master 时
- javascript - 在c#中提交表单字符串输入为空
- python - 使用非 ascii 字符测试 python 代码
- cron - 如何启动定期操作服务器端?
- android - 我试图让我的代码订阅(usermodel)并检查它是否在数据库中以加载数据
- spring-boot - 自定义 MessageConverter 在 Spring Boot 中不起作用
- dask - 如何创建具有多列的 dask 时间序列数据框
- r - 闪亮的可移动面板