我是靠谱客的博主 笑点低板凳,最近开发中收集的这篇文章主要介绍【思维导图】bokeh 交互式可视化python库网络资料汇总,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
与上张图只有一处不同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献:https://stackoverflow.com/questions/24985038/display-bokeh-generated-file-using-tornado
https://blog.csdn.net/tonydz0523/article/details/85717958?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160566144819195264760204%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160566144819195264760204&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-85717958.first_rank_ecpm_v3_pc_rank_v2&utm_term=bokeh+serve&spm=1018.2118.3001.4449
https://blog.csdn.net/tankloverainbow/article/details/80442289
https://docs.bokeh.org/en/latest/docs/reference/plotting.html

bokeh

bokeh 综述
oBokeh是一个专门针对Web浏览器的呈现功能的交互式可视化Python库。
这是Bokeh与其它可视化库最核心的区别。
正如下图所示,它说明了Bokeh如何将数据展示到一个Web浏览器上的流程。
和 matplotlib 一样,Bokeh 拥有一系列 API 接口。
比如 glpyhs 接口,该接口和 matplotllib 中的 Artists 接口非常相似,它主要用于绘制环形图、方形图和多边形图等。
最近 Bokeh 又开放了一个新的图形接口,该接口主要用于处理词典数据或 DataFrame 数据,并用于绘制罐头图。
oBokeh的优势:
Bokeh允许你通过简单的指令就可以快速创建复杂的统计图,
Bokeh提供到各种媒体,如HTML,Notebook文档和服务器的输出
我们也可以将Bokeh可视化嵌入flask和django程序
Bokeh可以转换写在其它库(如matplotlib, seaborn和ggplot)中的可视化
Bokeh能灵活地将交互式应用、布局和不同样式选择用于可视化
用Bokeh实现可视化
oBokeh提供了强大而灵活的功能,使其操作简单并高度定制化。
o它为用户提供了多个可视化界面,如下图所示:
图表(Charts):一个高级接口(high-level interface),用以简单快速地建立复杂的统计图表。
让我们来看看创建一个图表的通用方法:
o1. 导入库和函数/方法
o2. 准备数据
o3. 设置输出模式(Notebook文档、Web浏览器或服务器)
o4. 创建图表并选择图表的样式(如果需要)
o5. 可视化图表
绘图(Plotting):一个中级接口(intermediate-level interface),以构建各种视觉符号为核心。
使用Bokeh的Plotting接口创建的图表自带一组默认的工具和视觉效果。
绘图可按照以下步骤进行:
o1. 导入库、方法或函数
# 这个没有准备数据?
o2. 选择输出方式(Notebook文档、Web浏览器、服务器)
o3. 激活图(类似matplotlib)
o4. 执行后续的绘图操作,这将影响已经生成的图形。
o5. 图表可视化
模块(Models):一个低级接口(low-level interface),为应用程序开发人员提供最大的灵活性。
bokeh.layouts
https://blog.csdn.net/xc_zhou/article/details/84977449?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160566013419725225063487%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160566013419725225063487&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-84977449.first_rank_ecpm_v3_pc_rank_v2&utm_term=bokeh.&spm=1018.2118.3001.4449
orow()
row()的作用是将多个图像以行的方式放到同一张图中。
code
o# import
from bokeh.io import output_file, show
from bokeh.layouts import row
from bokeh.plotting import figure
ooutput_file(“layout.html”)
ox = list(range(11))
oy0 = x
oy1 = [10 - i for i in x]
oy2 = [abs(i - 5) for i in x]
o# create a new plot
s1 = figure(plot_width=250, plot_height=250, title=None)
s1.circle(x, y0, size=10, color=“navy”, alpha=0.5)
o# create another one
s2 = figure(plot_width=250, plot_height=250, title=None)
s2.triangle(x, y1, size=10, color=“firebrick”, alpha=0.5)
o# create and another
s3 = figure(plot_width=250, plot_height=250, title=None)
s3.square(x, y2, size=10, color=“olive”, alpha=0.5)
o# put the results in a row
show(row(s1, s2, s3))
ocolumn()
column()的作用是将多个图像以列的方式放到同一张图像中。
code
o# put the results in a column and show
show(column(s1, s2, s3))
ogridplot()
如果希望以矩阵的方式将多个图像放到同一张图上,可以使用gridplot()函数,如果某个位置的图像为空,可以设定为None。
code
o# import
from bokeh.io import output_file, show
from bokeh.layouts import gridplot
from bokeh.palettes import Viridis3
from bokeh.plotting import figure
ooutput_file(“layout_grid.html”)
ox = list(range(11))
oy0 = x
oy1 = [10 - i for i in x]
oy2 = [abs(i - 5) for i in x]
o# create three plots
p1 = figure(plot_width=250, plot_height=250, title=None)
p1.circle(x, y0, size=10, color=Viridis3[0])
p2 = figure(plot_width=250, plot_height=250, title=None)
p2.triangle(x, y1, size=10, color=Viridis3[1])
p3 = figure(plot_width=250, plot_height=250, title=None)
p3.square(x, y2, size=10, color=Viridis3[2])
o# make a grid
grid = gridplot([[p1, p2], [None, p3]])
本节知识点
o# show the results
show(grid)
owidgetbox()
如果希望在图像中插入widgets(小部件),可以使用widgetbox()函数。
code
ofrom bokeh.io import output_file, showfrom bokeh.layouts import widgetboxfrom bokeh.models.widgets import Button, RadioButtonGroup, Select, Slider output_file(“layout_widgets.html”) # create some widgetsslider = Slider(start=0, end=10, value=1, step=.1, title=“Slider”)button_group = RadioButtonGroup(labels=[“Option 1”, “Option 2”, “Option 3”], active=0)select = Select(title=“Option:”, value=“foo”, options=[“foo”, “bar”, “baz”, “quux”])button_1 = Button(label=“Button 1”)button_2 = Button(label=“Button 2”) # put the results in a rowshow(widgetbox(button_1, slider, button_group, select, button_2, width=300))
olayout()
layout()函数的作用有两个:
将多个图像按照矩阵样式摆放到同一张图中
输入参数可以是Plot, Widget, WidgetBox, Row, Column, ToolbarBox, Spacer,不仅限于Plot类
bokeh与tornado结合的三种方式
o1 bokeh生成一个html文件,由tornado来不断的去执行bokeh后生成新的html文件后,再去返回新的html
我之前用过这种方式,下面的链接也是这样方式
https://stackoverflow.com/questions/24985038/display-bokeh-generated-file-using-tornado
o2 bokeh作为一个tornado的一个应用端的库来使用
Embedding Bokeh Server as a Library
o3 tornado作为一个bokeh的客户端来使用
o注意:
倘若生成可以交互的方式的服务端的话,最好还是用bokeh serve 这种原生的方式
与tornado结合的方式更多的是为了展示数据使用。
另外,如果是实时流数据话,也是最好用bokeh serve原生的方式
bokeh.client.session
oProvide a session object to service Bokeh documents in external Python clients to a Bokeh server.
在外部Python客户端提供一个会话方面来服务散景文档到散景服务器
oUse-Cases
A client session has two primary uses:
Implementing automated testing infrastructure around Bokeh server applications.
Creating and customizing specific sessions of a Bokeh server application (running in the Bokeh server) before passing them on to a specific viewer.
o在将其传递到特定查看器之前,创建和定制散景服务器应用程序(在散景服务器中运行)的特定会话。
bokeh.io
https://blog.csdn.net/tankloverainbow/article/details/80464470?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
obokeh.io类中包含了如下几种类:
bokeh-server
o我用的0.10.0 版本的
o如何start?
使用Bokeh(下)——数据交互可视化
https://blog.csdn.net/tonydz0523/article/details/85717958?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160566144819195264760204%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=160566144819195264760204&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-85717958.first_rank_ecpm_v3_pc_rank_v2&utm_term=bokeh+serve&spm=1018.2118.3001.4449
o数据回调
数据回调主要包含连个部分:
关键数据标签的update
根据新标签数据进行新展示数据的提取
o一个例子:
创建文件insurance_graph.py,内容如下:
ocode
import
import numpy as np
import pandas as pd
from bokeh.layouts import layout, widgetbox, row
from bokeh.palettes import Spectral8
from bokeh.models import Select
from bokeh.plotting import figure
from bokeh.io import curdoc
df = pd.read_csv(‘https://raw.githubusercontent.com/ffzs/dataset/master/insurance.csv’)
# 获取图像的函数
def get_figure():
o grouped = df.groupby(‘sex’)
 # 以性别分组
o data = grouped.get_group(gender.value)
 # 获取选取的性别为变量
o color_col = color.value
# 获取颜色分类的属性
o color_class = pd.Categorical(data[color_col])
 # 将颜色分类数据明确化
o c = [Spectral8[i] for i in color_class.codes]
# 获取颜色列表
o s = [(np.sqrt(i)+2) for i in data[‘age’]]
# 将年龄数据开方用大小表示用以区别年龄大小
o p = figure()
o p.circle(x=data[“bmi”], y=data[“charges”], color=c, size=s)
# 绘图
o return p
# 数据更新函数
def update(attr, old, new):
o layout.children[1] = get_figure()
# 将第二子图更新
# 设置下拉选项进行性别的选择
gender = Select(title=‘Gender’, value=‘male’, options=[‘female’, ‘male’])
gender.on_change(‘value’, update)
# 设置下拉选项进行颜色区分的选择
color = Select(title=‘Color’, value=‘region’, options=[‘region’, ‘smoker’, ‘children’])
color.on_change(‘value’, update)
controls = widgetbox([gender, color], width=200)
# 将小部件放在一起
layout = row(controls, get_figure())
# 小部件和图横向排列
curdoc().add_root(layout)
# 添加layout
curdoc().title = “Insurence” # 标题设置
# bokeh serve --show insurance_graph.py 进行启动

正如下图所示,它说明了Bokeh如何将数据展示到一个Web浏览器上的流程。

如果希望在图像中插入widgets(小部件),可以使用widgetbox()函数。

如果希望以矩阵的方式将多个图像放到同一张图上,可以使用gridplot()函数,如果某个位置的图像为空,可以设定为None。

bokeh.io类中包含了如下几种类:

它为用户提供了多个可视化界面,如下图所示:

layout()函数的作用有两个:

row()的作用是将多个图像以行的方式放到同一张图中。

column()的作用是将多个图像以列的方式放到同一张图像中。

code

最后

以上就是笑点低板凳为你收集整理的【思维导图】bokeh 交互式可视化python库网络资料汇总的全部内容,希望文章能够帮你解决【思维导图】bokeh 交互式可视化python库网络资料汇总所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部