Python matplotlib: plot3D с цветом для 4D - PullRequest
3 голосов
/ 06 февраля 2012

Я пытаюсь создать трехмерный график из списка точек 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 Ответ

6 голосов
/ 07 февраля 2012

Если вы хотите отобразить простую трехмерную диаграмму рассеяния, разве вы не можете просто использовать 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.)

enter image description here

Наоборот, кажется, что с plot3D вы должны преобразовать свое четвертое измерение в кортежи RGB.

...