散景:绘制大型数据集

问题描述 投票:0回答:2

我正在尝试构建一个与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))

这是我的图表

bokeh plot

python bokeh
2个回答
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)

0
投票

在玩完之后我发现了简单的修复程序,以便更好地看到数据在第1行

将绘图的第一个x_range设置为较小的数字x_range=(0, 2000)

此设置改善了情节improved bokeh plot

如果有人对如何查看此类可变数据有任何建议,请分享

© www.soinside.com 2019 - 2024. All rights reserved.