我正在尝试构建一个与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并获得与上述链接相同的图像可视化。目标是看到phred在b上的分布。下面的代码返回一个图表,但我想更好地可视化phred over b的可变性,我不确定要调整哪些设置,所以它看起来更像上面的例子。
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))
这是我的图表
您使用“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行
将绘图的第一个x_range设置为较小的数字x_range=(0, 2000)
此设置改善了情节improved bokeh plot
如果有人对如何查看此类可变数据有任何建议,请分享