如何在python中为不同范围的数据点指定颜色

如何在python中为不同范围的数据点指定颜色,python,matplotlib,Python,Matplotlib,假设我有三组数据x,y和z。 我想绘制x和y的散射图,但我想根据它们对应的z值为不同的点指定颜色 例如,对于z在0到1范围内的每个点,我希望数据点是红色的,当z在1到3范围内时,我希望点是蓝色的,等等 我该怎么做 试试这个。从最重要的答案中选取 你好,ljanex,我看你是stackoverflow的新手。欢迎我想帮助你提出更好的问题,从而得到更直接的答案(而不是被否决)。这个问题的问题是,它只是简单地陈述了你的目标,这太宽泛了。相反,讨论您尝试了什么,使用了哪些工具和库,以及为什么它们能够或不

假设我有三组数据x,y和z。 我想绘制x和y的散射图,但我想根据它们对应的z值为不同的点指定颜色

例如,对于z在0到1范围内的每个点,我希望数据点是红色的,当z在1到3范围内时,我希望点是蓝色的,等等


我该怎么做

试试这个。从最重要的答案中选取


你好,ljanex,我看你是stackoverflow的新手。欢迎我想帮助你提出更好的问题,从而得到更直接的答案(而不是被否决)。这个问题的问题是,它只是简单地陈述了你的目标,这太宽泛了。相反,讨论您尝试了什么,使用了哪些工具和库,以及为什么它们能够或不能产生您期望的结果。祝你好运您正在使用哪个绘图库?
import matplotlib.pyplot as plt
import matplotlib.colors
import numpy as np

x = np.linspace(0, 10, 100)
y = np.random.randint(0, 50, size=100)
z = np.random.rand(100)*10

bounds = [0,1,3,10]
colors = ["r", "b", "g"]

plt.figure(figsize=(8,6))

cmap = matplotlib.colors.ListedColormap(colors)
norm = matplotlib.colors.BoundaryNorm(bounds, len(colors))

rect = plt.scatter(x, y, s = 100, c=z, cmap=cmap, norm=norm)

cbar = plt.colorbar(rect, spacing="proportional")
cbar.set_label('Color', rotation=270, labelpad=10)

for i, txt in enumerate(z):
    plt.annotate(np.around(txt, 1), (x[i], y[i]))
plt.show()