Puanlar için bir renk gradyanı ile 3B grafik nasıl oluşturabilirim? Bir 2D dağılım grafiği için çalışan aşağıdaki örneğe bakın.Renk gradyanlı Matplotlib 3D dağılım grafiği
Düzenleme (Chris'e teşekkürler): 3B grafiğinden görmeyi beklediğim şey, 2D dağılım grafiğinde olduğu gibi kırmızıdan yeşile değişen noktaların renk geçişidir. 3D dağılım grafiğinde gördüğüm sadece kırmızı noktalar.
Çözüm: Bazı nedenlerden dolayı (başka bir yerde kopyaladığım degrade örneğiyle ilgili olarak) xrange'i, 1 boyutlu grafikte her şeyi karıştıran len-1 olarak ayarlıyorum.
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()
gibi farklı değerler arasında yer alması ölçeği seçebilirsiniz: Burada
– Chris3B grafiğinden görmeyi beklediğim şey, 2D dağılım grafiğinde olduğu gibi kırmızıdan yeşile değişen noktaların renk geçişidir. 3D dağılım grafiğinde gördüğüm sadece kırmızı noktalar. –