使用带有 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 更改为具有所需缩放比例的另一个函数),应该会为您提供所需的颜色缩放比例。
我目前正在学习 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 更改为具有所需缩放比例的另一个函数),应该会为您提供所需的颜色缩放比例。