Python 如何为每个点绘制具有指定颜色的三维散点图

Python 如何为每个点绘制具有指定颜色的三维散点图,python,scatter,colormap,Python,Scatter,Colormap,这个问题可能很愚蠢,但我找不到答案。我正在使用python绘制一个散点图,其中x的大小为Nx,y的大小为Ny,z的大小为Nz,对于每个点(x[I],y[j],z[k]),我有一个强度I[I,j,k],这是一个实数 我想绘制这个散点图,其中每个坐标点(x,y,z)都有一个颜色,取决于强度一个简单的方法是使用pyplot.cm.get\u cmap()。下面的例子是2D,我让你了解剩下的 from matplotlib import pyplot as plt X = [1, 2, 3, 4] Y

这个问题可能很愚蠢,但我找不到答案。我正在使用python绘制一个散点图,其中x的大小为Nx,y的大小为Ny,z的大小为Nz,对于每个点(x[I],y[j],z[k]),我有一个强度I[I,j,k],这是一个实数


我想绘制这个散点图,其中每个坐标点(x,y,z)都有一个颜色,取决于强度

一个简单的方法是使用
pyplot.cm.get\u cmap()
。下面的例子是2D,我让你了解剩下的

from matplotlib import pyplot as plt

X = [1, 2, 3, 4]
Y = [1, 2, 2, 3]
# list-like of the intensities for each point
I = [2, 5, 7, 7]

# Create the colors
colors = plt.cm.get_cmap(None, len(list(set(I))))

colors_dict = dict()
count = 0
for elt in I:
    if elt not in colors_dict.keys():
        colors_dict[elt] = colors(count)
        count += 1
    else:
        continue

f, ax = plt.subplots(1, 1)

for k, x in enumerate(X):
    y = Y[k]
    i = I[k]
    dot_color = colors_dict[i]
    ax.scatter(x, y, s = 15, color = dot_color)

很可能存在比上述更好的方法