博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bokeh快速入门(1)
阅读量:6984 次
发布时间:2019-06-27

本文共 3501 字,大约阅读时间需要 11 分钟。

Bokeh入门(1)

 

摘录:Bokeh (Bokeh.js) 是一个 Python 交互式可视化库,支持现代化 Web 浏览器,提供非常完美的展示功能。Bokeh 的目标是使用  样式提供优雅,简洁新颖的图形化风格,同时提供大型数据集的高性能交互功能。Boken 可以快速的创建交互式的绘图,仪表盘和数据应用

 

 

先放一张自己做的图吧:

 

 

个人觉得最实用的功能就是保存为图片以及实时拖动了,另外就是重置功能了

 

前言:如果需要在web页面上展示图像,我想js绝对是不二选择,但是碍于学习成本又不想花太多时间去学js,那么作为一个对python情有独钟的非典型运维人员,当然得找找python强大的支持库了,一共找到了三款,mpld3pyxleybokeh,第一款个人觉得不够强大,主要是不能直接在浏览器上保存为图片,pyxley属于较新的python项目,官方自己都说说明文档coming soon!!!然后就选择bokeh了,再者bokeh真的异常的强大,还在慢慢摸索ing

 

 

下面是官方文档的入门教程,直接手工翻译的,如有错误还望指正。

参考:

 

Bokeh同时提供强大灵活的功能,使得用户可以进行非常高阶个人定制一方面十分简洁而另一方面,Bokeh根据用户的需要公开不同的等级的接口级别给不同级别的用户:

  1. Bokeh.models是一个相对而言低阶的接口,提供了尽可能多的的灵活性以应用程序开发人员。

  2. Bokeh.plotting是一个相对而言中阶的接口,主要以视觉图形为中心。

  3. Bokeh.charts是一个相对而高阶接口,用快速而尽可能简单地构建复杂的统计图。

  4. 次快速入门主要侧重于bokeh.plotting接口

 

快速安装:

有很多种不同的安装方式安装Bokeh

如果你用的是Anaconda (推荐),用以下的命令通过bash或者windows的命令行就可直接安装了。

1
conda 
install 
bokeh

这种安装方式,Anaconda已经准备了运行Bokeh之前所有需要的所有依赖,这也是Bokeh强烈推荐的安装方式,无论任何平台,包括windows,它都可以将安装成本趋近于零。它也会安装一些例子在examples/目录,即Anaconda安装目录的子目录。

如图:

 

 

当然,如果你有绝对的自信解决这些依赖,依赖包括Numpypandasredis等,你也可以用pip安装

 

1
pip 
install 
bokeh

 

Note

通过pip方式安装,不会安装这些例子,不过可以通过git clone 下载这些例子(examples/)

 

入门指南

Bokeh是一个公开很多能力的大型库,所以这一部分只是一个关于Bokeh常见实用案例以及工作流程的快速的导航。更多的细节请查阅完整的

 

下面通过一些实例开始。

python基本数据类型list的一些数据画一个线状图,并包括缩放(zoom),区域选择(pan),调整尺寸(resize),保存(save)等工具,是一个简答又直接的方式。

注:建议使用ipython notebook,如果不了解,去了解一下吧

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from 
bokeh.plotting 
import 
figure, output_file, show
# prepare some data
= 
[
1
2
3
4
5
]y 
= 
[
6
7
2
4
5
]
 
# output to static HTML file
output_file(
"lines.html"
, title
=
"line plot example"
)
 
# create a new plot with a title and axis labels
= 
figure(title
=
"simple line example"
, x_axis_label
=
'x'
, y_axis_label
=
'y'
)
 
# add a line renderer with legend and line thickness
p.line(x, y, legend
=
"Temp."
, line_width
=
2
)
 
# show the results
show(p)

当你执行这个脚本的时候,你将会发现,在当前目录会创建一个lines.html的文件,而且浏览器会自动打开一个窗口并展示这个创建的html文件,效果如上图所示。(为了展示效果,所以才会在教程中直接叫结果嵌在这篇文档中)

 

通过接口创建图像的基本步骤如下:

1.准备数据(如这个例子中的lise列表)

2.告诉Bokeh将文件输出的位置(这个例子中用的是,并制定lines.html作为文件名保存)

3.调用figure()去创建图形,并设置一些全体的参数,如标题,工具,轴标签等。

4.为数据添加渲染器(这个例子中的Figure.line),并加入一些可视化的定制,比如颜色,图标以及这个图形的宽度等

5.Bokeh或者

其中步骤3,4可以重复创建不止一个图形,详情见下面的其他实例。

 

接口也非常便利,如果我们需要在输出更多的一些自定义的数据序列,图标,指数轴线等。它当然也可以非常简单的组合多个图标在一张图形上,如下图所示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from 
bokeh.plotting 
import 
figure, output_file, show
# prepare some data
= 
[
0.1
0.5
1.0
1.5
2.0
2.5
3.0
]
y0 
= 
[i
*
*
2 
for 
in 
x]
y1 
= 
[
10
*
*
for 
in 
x]
y2 
= 
[
10
*
*
(i
*
*
2
for 
in 
x]
 
# output to static HTML file
output_file(
"log_lines.html"
)
 
# create a new plot
= 
figure(
   
tools
=
"pan,box_zoom,reset,save"
,
   
y_axis_type
=
"log"
, y_range
=
[
0.001
10
*
*
11
], title
=
"log axis example"
,
   
x_axis_label
=
'sections'
, y_axis_label
=
'particles'
)
 
# add some renderers
p.line(x, x, legend
=
"y=x"
)
p.circle(x, x, legend
=
"y=x"
, fill_color
=
"white"
, size
=
8
)
p.line(x, y0, legend
=
"y=x^2"
, line_width
=
3
)
p.line(x, y1, legend
=
"y=10^x"
, line_color
=
"red"
)
p.circle(x, y1, legend
=
"y=10^x"
, fill_color
=
"red"
, line_color
=
"red"
, size
=
6
)
p.line(x, y2, legend
=
"y=10^x^2"
, line_color
=
"orange"
, line_dash
=
"4 4"
)
 
# show the resultsshow(p)

    很好看,有没有

 

后记:搜了一下51cto的视频学院,不管是免费的还是收费的,居然都没有数据分析的课程,虽然自不量力,但是也希望在51CTO上录一个通过numpymatplotlibpandas的数据分析课程,一方面借鉴国外视频的先进经验,一方面也整理下自己的心得。这里有个不错的视频教程,关于pandas的,但是全英文的。

Learning Python for Data Analysis

链接:http://pan.baidu.com/s/1eQoEeeY 密码:x6of

有兴趣的可以瞧瞧。

 

本文转自 youerning 51CTO博客,原文链接:http://blog.51cto.com/youerning/1709113

转载地址:http://yfxpl.baihongyu.com/

你可能感兴趣的文章
python3实现抓取网页资源的 N 种方法(内附200GPython学习资料)
查看>>
不用软件,手动修复双系统引导进win7,xp的多种方法
查看>>
python 访问需要HTTP Basic Authentication认证的资源
查看>>
java中比较字符串的大小用String的compareTo()
查看>>
plist使用
查看>>
Linux RAR 安装和使用
查看>>
【OC】【一秒就会】【collectionView 头部吸住功能】
查看>>
51CTO下载 好资料分享
查看>>
linux 下转换UTC到本地时间
查看>>
Linux的起源与各发行版的基本知识
查看>>
单播包、广播包、组播包、洪泛包
查看>>
iptables命令结构之命令
查看>>
RabbitMQ之Exchange分类
查看>>
综合布线系统的构成
查看>>
计算机硬件 — 计算机简介
查看>>
关于重写session实现的时候可能会导至nginx 502的问题
查看>>
7z(p7zip)压缩软件在Linux下的安装和使用
查看>>
jetbrick-template 1.1.0 发布,支持 #tag, #macro, layout
查看>>
TCP的六个控制位
查看>>
进制转换
查看>>