我知道您可以使用Label()函数为绘图添加自定义标签,但您必须指定(x,y)坐标才能放置标签。
我有几个时间序列数据的注释,我正在使用Span()添加到绘图中,但我真正喜欢的是,如果我可以将标签添加到那些只在您将鼠标悬停时显示的Span注释Span对象。这似乎很简单,但我真的很挣扎。
以下是我一直在努力解决此问题的示例代码:
<!DOCTYPE html>
<html>
<head>
<title>Leaflet 1.0.3</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link type="text/css" rel="stylesheet" href="//unpkg.com/leaflet@1.0.3/dist/leaflet.css" />
</head>
<body>
<div id="leaflet"></div>
<script type="application/javascript" src="//unpkg.com/leaflet@1.0.3/dist/leaflet.js"></script>
</body>
</html>
请记住,我不知道如何使用javascript。
答案 0 :(得分:1)
考虑到您评论说您不知道如何使用JS,我提出以下解决方案作为实现所需内容的一种可能方法。
from bokeh.io import show, output_notebook
from bokeh.plotting import figure
from bokeh.core.properties import value
from bokeh.models import Span, HoverTool
output_notebook()
fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']
years = ["2015", "2016", "2017"]
colors = ["#c9d9d3", "#718dbf", "#e84d60"]
data = {'fruits' : fruits,
'2015' : [2, 1, 4, 3, 2, 4],
'2016' : [5, 3, 4, 2, 4, 6],
'2017' : [3, 2, 4, 4, 5, 3]}
p = figure(x_range=fruits, plot_height=250, title="Fruit Counts by Year",
toolbar_location=None, tools="")
p.vbar_stack(years, x='fruits', width=0.9, color=colors, source=data,
legend=[value(x) for x in years])
constant_line = [2.5, 2.5, 2.5, 2.5, 2.5, 2.5]
partial = p.line(fruits, constant_line, line_width=0.01, line_color='green', line_dash='dashed')
p.add_tools(HoverTool(renderers = [partial],tooltips=[("Value Constant", str(constant_line[0]))]))
daylight_savings_start = Span(location=2.5,
dimension='width', line_color='green',
line_dash='dashed', line_width=3)
p.add_layout(daylight_savings_start)
p.y_range.start = 0
p.x_range.range_padding = 0.1
p.xgrid.grid_line_color = None
p.axis.minor_tick_line_color = None
p.outline_line_color = None
p.legend.location = "top_left"
p.legend.orientation = "horizontal"
show(p)
您可以直接在jupyter笔记本上运行以前的代码,仅安装bokeh。
问题在于,如果仅绘制一条线,它不会从-infinity延伸到infinity。
如果在行上添加跨度,将得到以下结果。