Добавить цвет в 3D Scatter Plot - PullRequest
       13

Добавить цвет в 3D Scatter Plot

0 голосов
/ 13 декабря 2018

У меня есть список точек x, y, z и список значений, назначенных для каждой трехмерной точки.Теперь вопрос в том, как я могу раскрасить каждую точку на трехмерном графике рассеяния в соответствии со списком значений?

Цвета должны быть в типичном инженерном стиле -> RGB -> от нижнего синего к высшему красному

Большое спасибо

В основном я ищу эквивалент: scatter3 (X,Y, Z, S, C) Смотрите здесь: https://ch.mathworks.com/help/matlab/ref/scatter3.html

Я пытался:

col = [i/max(values)*255 for i in values]


ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals,c=col, marker='o')
pyplot.show()

.. но я не получил желаемый результат

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Обратите внимание, что рекомендуемый способ создания рассеивателей с цветами состоит в том, чтобы указывать значения непосредственно для c:

ax.scatter(x, y, z, c=values, marker='o', cmap="Spectral")

Минимальный пример:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = y = z = values = [1,2,3,4,5]

ax = plt.subplot(projection="3d")
sc = ax.scatter(x, y, z, c=values, marker='o', s=100, cmap="Spectral")

plt.colorbar(sc)
plt.show()

enter image description here

0 голосов
/ 13 декабря 2018

Вы можете просто сделать:

cmap = plt.cm.get_cmap('jet')
col = [cmap(i/max(values)) for i in values]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...