要制作交互式地球或天體圖,可以使用Bokeh庫的`Plot`和`ColumnDataSource`類來實現。下面是一個簡單的示例代碼,演示如何使用Bokeh制作一個交互式地球圖:
```python
from bokeh.plotting import figure, show
from bokeh.tile_providers import get_provider
from bokeh.models import ColumnDataSource, HoverTool
# 創建一個帶有Google地圖瓦片的繪圖對象
p = figure(x_range=(-20000000, 20000000), y_range=(-20000000, 20000000),
x_axis_type="mercator", y_axis_type="mercator")
p.add_tile(get_provider('CARTODBPOSITRON'))
# 創建一個包含地點信息的數據源
source = ColumnDataSource(data=dict(
lon=[0, -10000000, 10000000],
lat=[0, 0, 0],
name=['Equator', 'Point A', 'Point B']
))
# 在地球圖上添加點
p.circle(x='lon', y='lat', size=10, color='red', source=source)
# 添加懸停工具
hover = HoverTool(tooltips=[('Name', '@name')])
p.add_tools(hover)
# 顯示圖形
show(p)
```
在這個示例中,我們首先創建一個`figure`對象,然后添加Google地圖瓦片作為背景。接著,我們創建一個包含地點信息的數據源,并在地球圖上添加點。最后,我們添加一個懸停工具,當鼠標懸停在點上時,會顯示該點的名稱。最終調用`show`函數顯示圖形。
通過類似的方法,你可以使用Bokeh創建交互式的天體圖,只需替換地球圖的背景和點信息即可。