情节在散景中显示为黑色

Plot showing up black in Bokeh

我正在尝试从 hdf5 文件中绘制散景中的雷达数据。我已将数据存储到 1800*3600 的二维数组中。当我尝试使用 p.image 绘制数据时,它显示为黑色并带有一些斑点,我假设这些斑点是数据大于 0 的地方,但它不符合我指定的调色板。我不确定为什么会这样。

f = h5py.File(fname, 'r')
lat = f['Grid']['lat']
lon = f['Grid']['lon']
precip = f['Grid']['precipitationCal']
precip = np.transpose(precip)

d = np.empty((1800,3600))
for (x,y), value in np.ndenumerate(precip):
    if value <= 0:
        d[x,y]=np.nan
    else:
        d[x,y]=value


output_file("testimage.html", title="image.py example")
p = figure(x_range = [0, 3600], y_range=[0, 1800])
p.image(image=[d],x=[0],y=[0],dw=[3600], dh=[1800], pallete="Spectral-256")
show(p)

两件事:

首先,传递给 p.image 的参数拼写为 "palette" 而不是 "pallete"。默认调色板是 Grey9,它会为您提供您拥有的颜色图。

其次(文档对此不太清楚),调色板参数接受一个包含颜色图的列表作为十六进制值。这可以是任意列表:

palette = ["#8c9494", "#8398a2", "#7c9baa"] 
p.image(image=[d],x=[0],y=[0],dw=[360], dh=[180], palette=palette)

或 Bokeh 的标准调色板

from bokeh.palettes import Spectral6
p.image(image=[d],x=[0],y=[0],dw=[360], dh=[180], palette=Spectral6)

注:

print(Spectral6)
> ['#3288bd', '#99d594', '#e6f598', '#fee08b', '#fc8d59', '#d53e4f']

https://docs.bokeh.org/en/latest/docs/reference/palettes.html