我试图在matplotlib中为散点图创建一个离散的颜色条
我有我的x,y数据,每个点都有一个整数标记值,我希望用一种独特的颜色表示,例如
plt.scatter(x, y, c=tag)
Run Code Online (Sandbox Code Playgroud)
通常标记将是0到20之间的整数,但确切的范围可能会改变
到目前为止,我刚刚使用了默认设置,例如
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)
它提供了连续的颜色范围.理想情况下,我想要一组n个离散颜色(在这个例子中n = 20).更好的方法是将标签值设为0以产生灰色,1-20为彩色.
我找到了一些'cookbook'脚本,但它们非常复杂,我不认为它们是解决看似简单问题的正确方法
我有一个 2D NumPy数组,其中包含二进制值(0 和 1)+1 个附加值(-999),表示“无数据”。
这是一个虚拟示例:
import numpy as np
arr = np.random.randint(2, size=(100,))
# this no-data value has to be large compared to the data range:
arr[np.random.randint(1, 100, 20)] = -999
arr = arr.astype(np.float32)
arr.reshape((10,10))
>> arr
array([[ 1, 1, 0, 1, 0, 0, -999, 1, 0, 0],
[ 0, 1, 0, 0, 1, 0, 1, 1, 1, 1],
[ 1, 1, 1, 1, -999, 0, 1, -999, 1, -999],
[ 0, 1, -999, 1, 0, 1, …Run Code Online (Sandbox Code Playgroud)