首页 > 解决方案 > 使用 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(

标签: pythonpython-3.xmatplotlibplotnumpy-ndarray

解决方案


推荐阅读