Bokeh Serving 在heroku上交互式Bokeh图形

Bokeh Serving 在heroku上交互式Bokeh图形

在本文中,我们将介绍如何在Heroku上部署交互式的Bokeh图形。Bokeh是一个功能强大的Python库,用于创建交互式的数据可视化图形。Bokeh Serving是一个用于在网络上共享和交互Bokeh图形的工具。

阅读更多:Bokeh 教程

什么是Bokeh Serving?

Bokeh Serving是Bokeh的一个子模块,允许用户将其Bokeh图形部署到网络服务器上。通过Bokeh Serving,用户可以轻松地将其交互式图形共享给其他用户,让他们使用自己定义的界面和控件进行交互。

如何在Heroku上部署Bokeh图形?

要在Heroku上部署Bokeh图形,需要完成以下几个步骤:

步骤一:安装Heroku CLI

首先,需要安装Heroku CLI(命令行接口)。Heroku CLI是Heroku官方提供的一个命令行工具,用于执行与Heroku平台相关的操作。

步骤二:登录Heroku账户

安装完Heroku CLI后,可以在终端中使用heroku login命令登录Heroku账户。登录成功后,将会在终端中显示登录成功的信息。

步骤三:创建一个新的Heroku应用

使用以下命令创建一个新的Heroku应用:

heroku create <app-name>

这里的<app-name>是你想要给你的应用起的名字。Heroku将会为你的应用创建一个唯一的URL。

步骤四:设置Heroku配置

在部署Bokeh图形之前,需要在Heroku应用的配置中添加一些设置。在根目录下创建一个Procfile文件,并添加以下内容:

web: bokeh serve --port=$PORT --allow-websocket-origin=<app-url> <app-file>

这里的<app-url>是你Heroku应用的URL,<app-file>是你的Bokeh应用的入口文件。

步骤五:部署Bokeh图形到Heroku

完成配置后,可以使用以下命令将Bokeh图形部署到Heroku:

git push heroku master

这会将你的Bokeh应用推送到Heroku服务器上,并自动进行部署。

步骤六:通过URL访问Bokeh图形

部署完成后,可以通过Heroku为你的应用分配的URL访问你的Bokeh图形。在浏览器中输入应用的URL,即可使用你在Bokeh应用中定义的界面和控件进行交互。

示例说明

假设我们有一个简单的Bokeh应用,用于显示和交互一个散点图。

from bokeh.io import curdoc
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource, Slider

# 创建数据源
source = ColumnDataSource(data=dict(x=[1, 2, 3, 4, 5], y=[2, 4, 6, 8, 10]))

# 创建散点图
p = figure(title='Scatter Plot Example', plot_height=300, plot_width=400)
p.circle(x='x', y='y', source=source, size=10)

# 创建滑动条
slider = Slider(title='Size', start=5, end=20, step=1, value=10)

# 定义回调函数
def update_size(attr, old, new):
    p.circle(x='x', y='y', source=source, size=slider.value)

slider.on_change('value', update_size)

curdoc().add_root(p)
curdoc().add_root(slider)

我们可以将这个Bokeh应用保存为一个名为scatter_plot.py的文件。然后,按照上述步骤将这个应用部署到Heroku上。

总结

通过Bokeh Serving和Heroku,我们可以轻松地部署交互式的Bokeh图形,让其他用户可以通过URL访问并与图形进行交互。使用上述步骤,我们可以快速地将自己的Bokeh应用部署到Heroku上,并与他人共享自己的数据可视化结果。

Bokeh Serving和Heroku的结合为数据科学家和开发者提供了一个强大的工具,可以方便地构建和共享交互式的数据可视化应用,为数据分析和决策提供更直观和高效的工具。希望本文对你理解和使用Bokeh Serving和Heroku有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Bokeh 问答