首页  >  文章  >  后端开发  >  Bokeh 是一个有趣的 Python 数据可视化数据工具

Bokeh 是一个有趣的 Python 数据可视化数据工具

王林
王林原创
2024-09-08 16:30:04846浏览

数据可视化在解释大量信息方面发挥着关键作用。 Bokeh 等工具已成为构建交互式仪表板和报告的流行解决方案。每个工具都具有独特的优势,具体取决于您项目的复杂性和您首选的编程语言。在本文中,我们将深入研究每个工具,然后重点介绍 Bokeh,包括实践示例和云中的部署。

所以...

什么是散景?
Bokeh 是一个交互式可视化库,针对现代 Web 浏览器进行演示。它提供优雅简洁的图形,使开发人员能够构建具有高级交互性的仪表板。 Bokeh 特别适合使用 Python 的数据科学家和开发人员,提供高级界面和对绘图的精细控制。

如何使用这个工具?

  • 安装依赖项:

pip 安装散景
pip 安装gunicorn

  • 创建情节: 在这种情况下,我在主页中开发了两个图,然后我称之为“app.py”

Bokeh an interesting data tool in python for data visualization

from bokeh.layouts import column
from bokeh.models import ColumnDataSource, Select
from bokeh.plotting import figure, curdoc
import numpy as np

# Sample data for line plot
line_data = {
    'x': [1, 2, 3, 4, 5],
    'y1': [6, 7, 2, 4, 7],
    'y2': [1, 4, 8, 6, 9]
}

# Data for scatter plot
N = 4000
x_scatter = np.random.random(size=N) * 100
y_scatter = np.random.random(size=N) * 100
radii = np.random.random(size=N) * 1.5
colors = np.array([(r, g, 150) for r, g in zip(50 + 2 * x_scatter, 30 + 2 * y_scatter)], dtype="uint8")

# Create ColumnDataSource for line plot
source = ColumnDataSource(data={'x': line_data['x'], 'y': line_data['y1']})

# Create a figure for line plot
plot_line = figure(title="Interactive Line Plot", x_axis_label='X', y_axis_label='Y')
line1 = plot_line.line('x', 'y', source=source, line_width=3, color='blue', legend_label='y1')
line2 = plot_line.line('x', 'y2', source=source, line_width=3, color='red', legend_label='y2', line_alpha=0.5)

# Create a figure for scatter plot
plot_scatter = figure(title="Scatter Plot", tools="hover,crosshair,pan,wheel_zoom,zoom_in,zoom_out,box_zoom,undo,redo,reset,tap,save,box_select,poly_select,lasso_select,examine,help")
plot_scatter.circle(x_scatter, y_scatter, radius=radii,
                    fill_color=colors, fill_alpha=0.6,
                    line_color=None)

# Dropdown widget to select data for line plot
select = Select(title="Y-axis data", value='y1', options=['y1', 'y2'])

# Update function to change data based on selection
def update(attr, old, new):
    selected_y = select.value
    source.data = {'x': line_data['x'], 'y': line_data[selected_y]}
    # Update line colors based on selection
    line1.visible = (selected_y == 'y1')
    line2.visible = (selected_y == 'y2')
    plot_line.title.text = f"Interactive Line Plot - Showing {selected_y}"

select.on_change('value', update)

# Arrange plots and widgets in a layout
layout = column(select, plot_line, plot_scatter)

# Add layout to current document
curdoc().add_root(layout)
`

在 Heroku 中创建您的页面并执行后续步骤。

  • 创建 Procfile:

Bokeh an interesting data tool in python for data visualization

在此文件中以我的情况为例进行声明。

网络:散景服务 --port=$PORT --address=0.0.0.0 --allow-websocket-origin=juancioelpapi-325d94c2c6c7.herokuapp.com app.py

  • 创建需求: 在项目中创建requirements.txt并写入并保存

Bokeh an interesting data tool in python for data visualization

背景虚化

  • 推送您的项目:

在 git 中推送项目时情况类似,但在这种情况下,最终的主推送是在 heroku

git 初始化
git add .
git commit -m“使用 Gunicorn 部署 Bokeh 应用程序”
git push heroku master

  • 最后...

您可以看到带有散景图的页面。

Bokeh an interesting data tool in python for data visualization

Bokeh an interesting data tool in python for data visualization

  • 结论

Bokeh 的真正强大之处在于它能够在 Web 环境中提供交互式仪表板,使其成为实时数据监控和大型数据集的理想选择。通过使用 Gunicorn 在 Heroku 等云服务上部署 Bokeh 应用程序,您可以构建可扩展、可用于生产且易于维护和更新的仪表板。

以上是Bokeh 是一个有趣的 Python 数据可视化数据工具的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn