plotting 3D scatter plots in matplotlib

I have a collection of Nx3 matrices in scipy/numpy and I'd like to
make a 3 dimensional scatter of it, where the X and Y axes are
determined by the values of first and second columns of the matrix,
the height of each bar is the third column in the matrix, and the
number of bars is determined by N.

Each matrix represents a different data group and I want each to be
plotted with a different color, and then set a legend for the entire
figure.

I have the following code:

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])

The issue is that ax.scatter plots things with a transparency and I'd
like that remove. Also, I'd like to set the xticks and yticks and
zticks -- how can I do that?

Finally, the legend call does not appear, even though I am calling
label="" for each scatter call. How can I get the legend to appear?

thanks very much for your help.