plotting dispersión 3d en matplotlib
Tengo una colección de matrices Nx3 en scipy / numpy y me gustaría hacer una dispersión tridimensional, donde los ejes X e Y están determinados por los valores de la primera y segunda columna de la matriz, la altura de cada bar es la tercera columna en la matriz, y el número de barras está determinado por N.
Cada matriz representa un grupo de datos diferente y quiero que cada uno sea trazado con un color diferente, y luego establecer una leyenda para toda la figura.
Tengo el siguiente código
fig = pylab.figure()
s = plt.subplot(1, 1, 1)
colors = ['k', "#B3C95A", 'b', '#63B8FF', 'g', "#FF3300",
'r', 'k']
ax = Axes3D(fig)
plots = []
index = 0
for data, curr_color in zip(datasets, colors):
p = ax.scatter(log2(data[:, 0]), log2(data[:, 1]),
log2(data[:, 2]), c=curr_color, label=my_labels[index])
s.legend()
index += 1
plots.append(p)
ax.set_zlim3d([-1, 9])
ax.set_ylim3d([-1, 9])
ax.set_xlim3d([-1, 9])
El problema es que ax.scatter traza las cosas con transparencia y me gustaría que se eliminen. Además, me gustaría establecer los xticks, yticks y zticks, ¿cómo puedo hacer eso?
Finalmente, la llamada de leyenda no aparece, aunque estoy llamando a label = "" para cada llamada de dispersión. ¿Cómo puedo hacer que aparezca la leyenda?
Muchas gracias por su ayuda