简体   繁体   English

散景 - 如何将 y 值添加到水平跨度的 y 轴?

[英]Bokeh - how to add y value to y-axis of horizontal Span?

How can I show and highlight the value of the horizontal Span on the y-axis?如何在 y 轴上显示和突出显示水平跨度的值?

import bokeh as bk
import bokeh.plotting as bkplot
#bkplot.output_notebook() # to show inline

x = np.arange(3)
y = x**2

source = bk.models.ColumnDataSource(dict(x=x, y=y))

p = bkplot.figure(plot_width=500, plot_height=300)

glyph = bk.models.Line(x="x", y="y", line_width=6)
p.add_glyph(source, glyph)

top_span = bk.models.Span(location=3.5, dimension='width', line_color='green', line_width=2)
bottom_span = bk.models.Span(location=1.5, dimension='width', line_color='red', line_width=2)
p.renderers.extend([top_span, bottom_span])

bkplot.show(p)

Result:结果:

在此处输入图片说明

Desired result:想要的结果:

在此处输入图片说明

There's been a discussion of this very issue in Bokeh's github: https://github.com/bokeh/bokeh/issues/7309在 Bokeh 的 github 中对这个问题进行了讨论: https : //github.com/bokeh/bokeh/issues/7309

So having labels on Spans in the axis area vs. the plot area is not yet implemented.因此,尚未实现在轴区域与绘图区域中的跨度上的标签。

If you're okay with labels in the plot area, though, you may want to use a Label.但是,如果您对绘图区域中的标签没问题,则可能需要使用标签。 Here's what I was able to do with Labels:这是我能够用标签做的事情:

top_span = bk.models.Span(location=3.5, dimension='width', line_color='green', line_width=2)
top_span_label = bk.models.Label(text_color='green', text=str(top_span.location), x=0, y=top_span.location)
bottom_span = bk.models.Span(location=1.5, dimension='width', line_color='red', line_width=2)
bottom_span_label = bk.models.Label(text_color=bottom_span.line_color, text=str(bottom_span.location), x=0, y=bottom_span.location)
p.renderers.extend([top_span, top_span_label, bottom_span, bottom_span_label])

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM