3

是否可以根据距视点的距离来模糊 matplotlib 3d 中的某些数据点。我知道它只会使这些点变得不透明。

我正在寻找类似的东西;

http://vimeo.com/15669684

4

1 回答 1

0

您可以使用matplotlib.cm.

z在下面的玩具示例中,它对定义每个标记的颜色的坐标进行了线性插值。z表示前景和背景值的限制由zbf和给出zbb

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import matplotlib.cm as cm
import numpy as np

n = 10
frames = 100
x = np.random.random(n)
y = np.random.random(n)
z = np.random.random(n)

zbb = 0. # z_blur_back
zbf = 1. # z_blur_fore

ax = plt.subplot(111)
fig = plt.gcf()

def animate(i):
    global x, y, z
    x += 0.01*(-0.5 + np.random.random(n))
    y += 0.01*(-0.5 + np.random.random(n))
    z += 0.05*(-0.5 + np.random.random(n))

    cmnum = (z-zbf)/(zbb-zbf)
    colors = cm.gray(cmnum) # use hot, ocean, rainbow etc...

    fig = plt.gcf()
    fig.clear()
    ax = plt.gca()
    ax.scatter(x, y, marker='o', s=200., color=colors)
    ax.set_xlim(-0.1,1.1)
    ax.set_ylim(-0.1,1.1)

ani = FuncAnimation(fig, animate, frames=xrange(frames))
ani.save('test.mp4', fps=20)
于 2013-08-23T20:00:14.580 回答