У меня есть набор матриц Nx3 в scipy/numpy, и я хотел бы сделать его трехмерный разброс, где оси X и Y определяются значениями первого и второго столбцов матрицы, высота каждого бара является третьим столбцом в матрице, а число баров определяется N.
Каждая матрица представляет собой другую группу данных, и я хочу, чтобы каждая была построена с другим цветом, а затем задала легенду для всего рисунка.
У меня есть следующий код:
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])
Проблема в том, что ax.scatter отображает вещи с прозрачностью, и я бы хотел, чтобы это удалялось. Кроме того, я хотел бы установить xticks и yticks и zticks - как я могу это сделать?
Наконец, вызов легенды не появляется, хотя я вызываю label = "" для каждого разворот вызова. Как я могу получить легенду?
Большое спасибо за вашу помощь.