3D-график рассеяния Matplotlib с цветовым градиентом

Как я могу создать трехмерный график с цветовым градиентом для точек? См. Пример ниже, который работает для двухмерной диаграммы рассеяния.

Редактировать (спасибо Крису): То, что я ожидаю увидеть на 3D-графике, - это цветовой градиент точек в диапазоне от красного до зеленого, как на 2D-графике рассеяния. На графике рассеяния в 3D я вижу только красные точки.

Решение: по некоторым причинам (связанным с примером градиента, который я скопировал в другом месте) я установил xrange на len-1, что испортило все на трехмерном графике.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# Create Map
cm = plt.get_cmap("RdYlGn")

x = np.random.rand(30)
y = np.random.rand(30)
z = np.random.rand(30)
#col = [cm(float(i)/(29)) for i in xrange(29)] # BAD!!!
col = [cm(float(i)/(30)) for i in xrange(30)]

# 2D Plot
fig = plt.figure()
ax = fig.add_subplot(111)
ax.scatter(x, y, s=10, c=col, marker='o')  

# 3D Plot
fig = plt.figure()
ax3D = fig.add_subplot(111, projection='3d')
ax3D.scatter(x, y, z, s=10, c=col, marker='o')  

plt.show()
16
задан andrea.ge 17 January 2012 в 10:33
поделиться