我正在尝试构建一个与range_tool.py示例非常相似的图 https://bokeh.pydata.org/en/latest/docs/gallery/range_tool.html
我没有使用日期时间数据,而是有两个列表,每个列表的长度超过40,000个数据点。
示例列表:
b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
phred = [17, 16, 6, 15, 6, 7, 6, 7, 9, 11, 16, 13, 9, 11, 12, 13, 6, 12, 13, 7]
我想绘制b vs p并获得与上述链接相同的图像可视化效果。
目的是查看phr在b上的分布。
下面的代码返回了一个图形,但是我想更好地可视化phr的变化性,我不确定tweek的设置,所以看起来更像上面的示例。
from bokeh.io import show
from bokeh.layouts import column
from bokeh.models import ColumnDataSource, RangeTool
from bokeh.plotting import figure
p = figure(plot_height=300, plot_width=800, tools="", toolbar_location=None, x_range=(0, 50000))
p.line(b, phred)
p.yaxis.axis_label = 'phred score'
select = figure(plot_height=150, plot_width=800, y_range=p.y_range, y_axis_type=None, tools="", toolbar_location=None)
range_rool = RangeTool(x_range=p.x_range)
range_rool.overlay.fill_color = "navy"
range_rool.overlay.fill_alpha = 0.2
select.line(b, phred)
select.ygrid.grid_line_color = None
select.add_tools(range_rool)
select.toolbar.active_multi = range_rool
show(column(p, select))
这是我的图
答案 0 :(得分:1)
您正在使用“ p”作为图形和一个数据列表的名称!
您必须传递列表对象,而不是将其名称作为字符串传递。
尝试:
b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
c = [17, 16, 6, 15, 6, 7, 6, 7, 9, 11, 16, 13, 9, 11, 12, 13, 6, 12, 13, 7]
p.line(b, c)
答案 1 :(得分:0)
玩转之后,我发现了一个简单的解决方法,可以更好地看到数据在第1行中
将图的第一个x_range设置为较小的数字
x_range=(0, 2000)
此设置改善了情节 improved bokeh plot
如果有人对如何查看此类可变数据有任何建议,请分享