玖叶教程网

前端编程开发入门

Bokeh实现web数据动态可视化(可视化数据动态图)

好久没有写可视化方面的总结了,只因这半年在忙别的,顺便加固一下JS水平。

如题:可以使用Bokeh提供的bokeh.embed模块将Bokeh绘图嵌入到网页中,从而实现动态可视化。

具体步骤如下:

在Python中使用Bokeh绘制出需要展示的图形


from bokeh.plotting import figure
from bokeh.io import output_file, show
from bokeh.models import ColumnDataSource

# 定义数据
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# 创建一个绘图空间
p = figure(title="Bokeh Example")

# 添加一个散点图
source = ColumnDataSource(data=dict(x=x, y=y))
p.circle(x='x', y='y', source=source)

# 输出到静态HTML文件
output_file("example.html")

# 展示图形
show(p)


将Bokeh绘图嵌入到网页中


from bokeh.embed import components

# 获取绘图的JavaScript代码和HTML标签
script, div = components(p)


在HTML中插入标签和代码

html = """
<!DOCTYPE html>
<html>
    <head>
        <title>Bokeh Example</title>
        <script src="https://cdn.bokeh.org/bokeh/release/bokeh-2.3.3.min.js"></script>
        <script src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.3.min.js"></script>
        <script src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.3.min.js"></script>
        <link rel="stylesheet" href="https://cdn.bokeh.org/bokeh/release/bokeh-2.3.3.min.css" type="text/css" />
        <link rel="stylesheet" href="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.3.3.min.css" type="text/css" />
        <link rel="stylesheet" href="https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.3.3.min.css" type="text/css" />
        {{ script }}
    </head>
    <body>
        {{ div }}
    </body>
</html>
"""

# 将代码和标签插入到HTML中
html = html_template.render(script=script, div=div)

之前,不能很好加载的原因,一是版本线上线下不对应,二是相应的JS和CSS么有预先加载。最佳的解决方案就是在Bokeh中直接保存为html,然后在线上加入相应的JS和CSS。

将HTML保存到文件中或者使用web框架返回给客户端

with open("example.html", "w") as f:

f.write(html)

这一步也可以通过Flask进行实时动态显示。


该代码将Bokeh绘图嵌入到了一个HTML文件中,可以通过浏览器打开该文件来查看动态可视化图形。同时,也可以将该HTML文件作为模板,在web框架中使用模板引擎动态生成HTML返回给客户端。

civilpy:Python数据分析及可视化实例目录


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言