我目前正在使用 python 处理应变数据,并使用 matplotlib (v. 1.5.1) 为有限应变椭球体创建各种图形输出。
处理 1000 个椭球体参数非常快(我正在重用此处提供的一些可爱的 python 代码https://github.com/minillinim/ellipsoid/blob/master/ellipsoid.py),但我的工作流程中的瓶颈与在 3D 绘图中绘制大量 3D 对象所需的时间。
下面我附上了一小段 Python 代码,用于计算和绘制一堆随机椭球体。虽然“ellipNumber”很小,但它的作用就像一个魅力。但是,当它达到 100 时,需要更长的时间.. 到了 1000 秒,我敢打赌你将没有耐心等待。
在 2D 中,我知道使用集合是提高性能的方法:如何快速绘制数千个圆圈?
假设集合确实是可行的方法,我四处寻找一个示例,并尝试使用椭圆体坐标填充 Poly3DCollection,就像他们在 3D 中对多边形所做的那样: Plotting 3D Polygons in python-matplotlib,但我没有成功设置基于 2d x、y 和 z 数组的顶点。
任何有关如何提高椭球体绘图性能的建议/评论将不胜感激!
干杯
import numpy as np
from numpy import linalg
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
import matplotlib.colors as colors
fig = plt.figure(figsize=(8,8))
ax = fig.add_subplot(111, projection='3d')
# number …Run Code Online (Sandbox Code Playgroud)