【发布时间】:2021-07-22 09:39:14
【问题描述】:
下面的代码可以创建一个简单的 x-y 线图。
我希望能够以交互方式测量绘图上的点之间的距离并最好将其显示在图表上,但在附近的字形中也可以。
假设我使用某种工具单击并从一个点拖动到另一个点(或地图上的随机点),我想要一些能告诉我 x 距离的东西(在这个例子中并不需要 y 或欧几里得距离) .
我该怎么做?
from bokeh.io import output_file, show, save
from bokeh.layouts import column
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
data = []
x = list(range(11))
y0 = x
y1 = [10 - xx for xx in x]
y2 = [abs(xx - 5) for xx in x]
source = ColumnDataSource(data=dict(x=x, y0=y0, y1=y1, y2=y2))
for i in range(3):
p = figure(title="Title "+str(i), plot_width=300, plot_height=300)
if len(data):
p.x_range = data[0].x_range
p.y_range = data[0].y_range
p.circle('x', 'y0', size=10, color="navy", alpha=0.5, legend_label='line1', source=source)
# p.triangle('x', 'y1', size=10, color="firebrick", alpha=0.5, legend_label='line2', source=source)
# p.square('x', 'y2', size=10, color="olive", alpha=0.5, legend_label='line3', source=source)
p.legend.location = 'top_right'
p.legend.click_policy = "hide"
data.append(p)
plot_col = column(data)
# show the results
show(plot_col)
【问题讨论】: