绘制Lorenz系统最具描述性的方法是什么?

时间:2016-11-01 10:51:58

标签: python matplotlib mplot3d lorenz-system

我(数字地)使用不同的方法解决Lorenz系统。我正在使用matplotlib绘制它,但我想要一种方法来区分更好的点。

例如:

让我们假设要绘制的点存储在数组a中,其格式为

array([[  0.5       ,   0.5       ,   0.5       ],
       [  0.50640425,   0.6324552 ,   0.48965064]])
         #...

现在这些代码行

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(a[:,0],a[:,1],a[:,2])
plt.show()

产生

enter image description here

不是很具描述性,是吗?所以我认为绘制离散点会更好。所以这些:

import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(a[:,0],a[:,1],a[:,2], s=0.2)
plt.show()

产生

enter image description here

但它并不像我想要的那样具有描述性。我想知道绘制Lorenz系统最具描述性的方法是什么。

1 个答案:

答案 0 :(得分:3)

考虑使分散点透明。您可以将alpha关键字传递给plt.scatter来执行此操作。以下是一个示例,已从mplot3d example gallery修改为alpha = 1.0,这是默认值:

ax.scatter(xs, ys, zs, alpha=1.0, s=0.2)

opaque

以下是使用alpha = 0.1绘制的相同散点云:

ax.scatter(xs, ys, zs, alpha=0.1, s=0.2)

transparent

请注意,虽然这看起来是一个很好的可视化,但它的交互部分对于大量的点来说非常慢。如果你真的需要快速的表现,可以考虑另一种方法 - 将线条分割成段并按索引着色,类似于正在做的事情here