如何在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”函数显示绘图。
广告