我正试图用Bokeh在两行之间填充。我的两个数据集包含NaNs的部分。修补程序为数据的最后一部分正确呈现,但在任何NaN块之前的部分都失败。下面的示例说明了这个问题:
from bokeh.plotting import figure, output_file, show
import numpy as np
p = figure(plot_width=400, plot_height=300)
mx = np.array(np.random.randint(20, 25, 30), dtype=float)
mx[7:11] = np.nan
mx[19:23] = np.nan
mn = mx-10
x = np.arange(0, len(mn))
wX = np.append(x, x[::-1])
wY = np.append(mx, mn[::-1])
p.patch(wX, wY)
show(p)这产生了以下数字:

我希望前两个平行线段与填充之间的绘图,因为最后的部分是绘图。相反,这些部分似乎只是将补丁应用于线段本身。我有一个解决方案,通过循环遍历每个连续的数据段来创建单独的修补程序,但是在很多100多个补丁中它太慢了。
发布于 2017-01-24 10:27:00
据我所知,Bokeh正确地呈现了您提供的修补程序。请记住,路过的NaN会分离个别的补丁。这使得您传递多个连续的NaN有点奇怪,它没有添加任何内容。同时指定一个有效的X坐标和一个NaN Y坐标也有点混乱。
就像使用line()和multi_line()一样,可以将NaN值传递给修补程序()和修补程序()符号。在这种情况下,您将使用单个逻辑修补程序对象,这些对象在呈现时具有多个不相交的组件。
guide/plotting.html
我已经将x,y坐标添加到运行代码时获得的第一个补丁中。也许您打算做一些不同的事情,但是Bokeh正在正确地呈现您指定的内容。

https://stackoverflow.com/questions/41658103
复制相似问题