使用带有 python 的 Matplotlib 更改散点图中的颜色

Changing colors in a scatterplot using Matplotlib with python

我目前正在学习 Matplotlib class。我得到了一张图像,可以在 4 个不同的角度将图像创建为 3D 子图 4 次。这是一个线性图。随着数据的变化,绘图会改变颜色。因为它是一张图片,所以我不确定实际更改从哪里开始。我不想要一个确切的答案,只是解释这是如何工作的。我已经找到了很多方法来为一个小列表执行此操作,但是它有 75 个数据点,如果不添加 75 个条目我似乎无法做到这一点。 我也试图理解 cmap 但我也对它感到困惑。 此外,它需要在没有 Seaborn 的情况下完成。 This is part of the photo.

我发现你的问题有点难以理解。我认为您需要的是一个将输入 x/y 参数映射到您选择的颜色图中的颜色的函数。请参阅以下示例:

import numpy as np
import matplotlib.pyplot


def number_to_colour(number, total_number):
    return plt.cm.rainbow(np.linspace(0,1.,total_number))[list(number)]


x = np.arange(12)
y = x*-3.
z = x


fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c=number_to_colour(x, len(x)))
plt.show()

plt.cm.rainbow(np.linspace(0,1.,total_number)) 创建一个长度为 total_number 的颜色数组,这些颜色在颜色图上均匀分布(在本例中为 rainbow)。修改此数组的索引(或将 np.linspace 更改为具有所需缩放比例的另一个函数),应该会为您提供所需的颜色缩放比例。