如何在Bokeh中可视化多线图,例如洛伦兹吸引子?


Bokeh是一个用于数据可视化的Python包。它是一个开源项目。Bokeh使用HTML和JavaScript呈现其图表。这表明它在使用基于Web的仪表板时非常有用。

Bokeh将数据源转换为JSON文件。此文件用作BokehJS(一个JavaScript库)的输入。BokehJS是用TypeScript编写的,有助于在现代浏览器上呈现可视化效果。

Matplotlib和Seaborn生成静态图表,而Bokeh生成交互式图表。这意味着当用户与这些图表交互时,它们会相应地改变。

Bokeh的依赖项:

Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python−dateutil

在Windows命令提示符下安装Bokeh

pip3 install bokeh

在Anaconda提示符下安装Bokeh

conda install bokeh

以下是代码:

示例

import numpy as np
from scipy.integrate import odeint
from bokeh.plotting import figure, output_file, show

sigma = 15
rho = 30
beta = 11/6
theta = 3 * np.pi / 5

def lorenzFun(xyz, t):
   x, y, z = xyz
   x_dot = sigma * (y − x)
   y_dot = x * rho − x * z − y
   z_dot = x * y − beta* z
   return [x_dot, y_dot, z_dot]

initial = (−11, −8, 40)
t = np.arange(0, 1149, 0.05)

solution = odeint(lorenzFun, initial, t)

x = solution[:, 0]
y = solution[:, 1]
z = solution[:, 2]
xprime = np.cos(theta) * x − np.sin(theta) * y
colors = ["#C6DBEF", "#9ECAE1", "#6BAED6", "#4292C6", "#2171B5", "#08306B",]
p = figure(title="Lorenz attractor ", background_fill_color="#fafafa")

p.multi_line(np.array_split(xprime, 6), np.array_split(z, 6),
line_color=colors, line_alpha=0.8, line_width=1.5)
output_file("lorenzplot.html", title="lorenz attractor example")

show(p)

输出

解释

  • 导入并为所需的包指定别名。

  • 调用figure函数,并指定绘图宽度和高度。

  • 定义“lorenzFun”,它给出“x”、“y”和“z”的值。

  • 定义颜色列表,为绘图着色。

  • 调用“output_file”函数以指定将生成的html文件的名称。

  • 调用Bokeh中的“multi_fun”函数,并传入数据。

  • 使用“show”函数显示绘图。

更新于:2021年1月19日

48 次浏览

启动你的职业生涯

完成课程后获得认证

开始
广告