Python matplotlib: plot3D с цветом для 4D
Я пытаюсь создать трехмерный график из списка точек x, y, z, и я хочу построить цвет в зависимости от значений четвертой переменной rho.
В настоящее время у меня есть;
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot3D(cell_x, cell_y, cell_z, linestyle='None', marker='o', markersize = 5, antialiased=True)
ax.set_xlim3d(0.45, 0.55)
ax.set_ylim3d(0.45, 0.55)
ax.set_zlim3d(0.45, 0.55)
Как добавить cell_rho (мой четвертый массив) в качестве цвета моих точек x, y, z? (например, для струйной карты цветов).
Большое спасибо.
РЕДАКТИРОВАТЬ: Я не могу использовать точечные диаграммы, потому что для моих 18000 точек точечные диаграммы очень медленны по сравнению с plot3d только с маркерами.
1 ответ
Решение
Если вы хотите отобразить простую трехмерную диаграмму рассеяния, вы не можете просто использовать scatter
?
Например,
x, y, z = randn(100), randn(100), randn(100)
fig = plt.figure()
from mpl_toolkits.mplot3d import Axes3D
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c=randn(100))
plt.show()
(Я запускаю приведенный выше код под python -pylab
.)
Кажется, наоборот, что с plot3D
Вы должны преобразовать свое четвертое измерение в кортежи RGB.