Python-Bokeh可能会将数据坐标和像素坐标混合用于p

2024-09-30 14:22:07 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以用作输入,比如说,圆基于输入的x坐标数据来刻划坐标,而y坐标则以图表顶部或底部的像素形式输入?在

有点像matplolib的混合变换?在

或者,在像素坐标中转换数据坐标会很容易,但前提是我可以找到y_range值?我尝试了figure.y_range.start,但它没有返回任何内容


Tags: 数据方法内容图表range像素start形式
1条回答
网友
1楼 · 发布于 2024-09-30 14:22:07

无法直接使用屏幕空间坐标来定位图示符。事实证明,要同时支持这一点和Bokeh的一个核心特性的所有命中测试机制都太难了。我可以想象有两种可能的解决办法。在

第一种方法是使用某种Annotation。注释可以定位在屏幕坐标中(因为它们不参与命中测试)。目前还没有“圆”注释,但也许一个长方体或多边形注释可以满足您的需要。BoxAnnotation在《用户指南》中有一节,poly注释与之类似:

https://docs.bokeh.org/en/latest/docs/user_guide/annotations.html#box-annotations

或者,您可以创建添加第二个“额外范围”,它是屏幕(像素)单位的代理。其中一个例子是:

from bokeh.models import Range1d
from bokeh.plotting import figure, show, output_file

output_file("foo.html")

p = figure()

# this will only work for fixed layout plots, and you'll have to tune 
# the 'end' property to match your plot dimensions
p.extra_y_ranges = {"foo": Range1d(start=0, end=520)}

p.circle([10, 20, 30], [20, 260, 500], size=10, y_range_name="foo")

show(p)

现在,当绘图内部维度发生变化时,也有回调。对于可调整大小的绘图,您可以将其扩展为更健壮/更复杂。为这些内部绘图维度添加回调的方法如下:

^{pr2}$

对于python(服务器)回调。将js_on_change用于CustomJS回调。在

相关问题 更多 >