我想知道是否有一些优雅的方法可以根据条目的值在散点图中设置离散颜色。以下是一个完全简化的示例:
x=np.arange(100) plt.scatter(x,x,c=x,cmap='jet') plt.show()
假设我希望所有低于 40 的值都为绿色,40 到 60 之间的值都为绿色,大于 60 的值都为红色。我知道我可以创建一个循环,其中包含一些 if 语句,根据这些条件生成一个列表,这样我就得到了类似的东西colorlist=['blue','blue',.....]。
colorlist=['blue','blue',.....]
我知道这可行,但有没有其他方法可以做到这一点,或者这是最简单的方法?
你可以做这样的事情:
import matplotlib.pyplot as plt import numpy as np import matplotlib.colors as mcol cmap = mcol.ListedColormap(["blue","green","red"]) bounds = [0, 40, 60, 100] norm = mcol.BoundaryNorm(bounds, cmap.N) x=np.arange(100) plt.scatter(x,x,c=x,cmap=cmap,norm=norm) plt.show()