阈值以下的值使用相同颜色的散点图

时间:2020-08-12 07:17:54

标签: python matplotlib colorbar

我正在尝试生成坐标(x,y)的散点图,其中颜色由介于(-3,1.5)之间的值决定。如何绘制所有值小于-1且颜色相同的点,而不将它们一起从图中省略。我尝试使用im.set_clim(-1,1.5),但它截断了-1以下的值,并且没有绘制。

我该怎么做?

后续问题:

是否有可能具有顺序颜色图,其中低于-1的值都为红色(无渐变),而值-1以上的值具有不以红色阴影开头的顺序色图。

1 个答案:

答案 0 :(得分:2)

vminvmax指示哪个c值对应于颜色图的最低和最高颜色。默认情况下,所有低于vmin的值将获得最低的颜色(“ viridis”图为深紫色)。您可以使用cmap.set_under(...)更改此颜色。 extend=参数在颜色栏中将底色显示为三角形箭头。

from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(0, 15, 50)
y = - np.sin(x) / (x + 1) * 8
num_colors = 10
cmap = plt.get_cmap('viridis', num_colors)
cmap.set_under('red')
plt.scatter(x, y, c=y, cmap=cmap, vmin=-1, vmax=1.5)
plt.colorbar(extend='min')
plt.show()

example plot