http://bokeh.pydata.org/en/latest/docs/user_guide/plotting.html
创建画板
scatter图
from bokeh.plotting import figure, output_file, show
# 输出静态html图
output_file(
"line.html")
p = figure(plot_width=
400, plot_height=
400)
# 添加园渲染,设置大小,颜色,透明度
p.circle([
1,
2,
3,
4,
5], [
6,
7,
2,
4,
5], size=
20, color=
"navy", alpha=
0.5)
# 展示结果
show(p)
line图
from bokeh.plotting
import figure, output_file, show
output_file(
"line.html")
p = figure(plot_width=
400, plot_height=
400)
p.line([
1,
2,
3,
4,
5], [
6,
7,
2,
4,
5], line_width=
2)
show(p)
多线图可以使用figure.multi_line
Bars和Rectangles图
Rectangles
from bokeh.plotting import figure,
show, output_file
output_file('rectangles.html')
p = figure(plot_width=400, plot_height=400)
p.quad(top=[2, 3, 4], bottom=[1, 2, 3], left=[1, 2, 3],
right=[1.2, 2.5, 3.7], color="#B3DE69")# 设置长方形四个点的位置
show(p)
可以使用rect()来画任意角度的长方形
Bars
from bokeh.plotting
import figure, show, output_file
output_file(
'vbar.html')
p = figure(plot_width=
400, plot_height=
400)
p.vbar(x=[
1,
2,
3], width=
0.5, bottom=
0,
top=[
1.2,
2.5,
3.7], color=
"firebrick")
show(p)
使用hbar绘制水平条形图
Patch图
from bokeh.plotting import figure, output_file, show
output_file(
"patch.html")
p = figure(plot_width=
400, plot_height=
400)
# add a patch renderer with an alpha an line width
p.patch([
1,
2,
3,
4,
5], [
6,
7,
8,
7,
3], alpha=
0.5, line_width=
2)
# 设置每个定点的位置
show(p)
使用patches()绘制多个patch图
Ovals and Ellipses图
from math
import pi
from bokeh.plotting
import figure, show, output_file
output_file(
'ovals.html')
p = figure(plot_width=
400, plot_height=
400)
p.oval(x=[
1,
2,
3], y=[
1,
2,
3], width=
0.2, height=
40, color=
"#CAB2D6",
angle=pi/
3, height_units=
"screen")
show(p)
Images
from __future__ import division
import numpy as np
from bokeh.plotting import figure, output_file,
show
# create an array of RGBA data
N = 20
img = np.empty((N, N), dtype=np.uint32)
view = img.view(dtype=np.uint8).reshape((N, N, 4))
for i in range(N):
for j in range(N):
view[i, j, 0] = int(255 * i / N)
view[i, j, 1] = 158
view[i, j, 2] = int(255 * j / N)
view[i, j, 3] = 255
output_file("image_rgba.html")
p = figure(plot_width=400, plot_height=400, x_range=(0, 10), y_range=(0, 10))
p.image_rgba(image=[img], x=[0], y=[0], dw=[10], dh=[10])
show(p)
Segments and Rays(线段和射线)
from bokeh.plotting
import figure, show
p = figure(plot_width=
400, plot_height=
400)
p.segment(x0=[
1,
2,
3], y0=[
1,
2,
3], x1=[
1.2,
2.4,
3.1],
y1=[
1.2,
2.5,
3.7], color=
"#F4A582", line_width=
3)
show(p)
Wedges and Arcs(契形和弧度)
from bokeh.plotting
import figure, show
p = figure(plot_width=
400, plot_height=
400)
p.arc(x=[
1,
2,
3], y=[
1,
2,
3], radius=
0.1, start_angle=
0.4, end_angle=
4.8, color=
"navy")
show(p)
多种图形
设置坐标轴范围
from bokeh.plotting import figure, output_file,
show
from bokeh.models import Range1d
output_file("title.html")
# create a new plot with a range set with a tuple
p = figure(plot_width=400, plot_height=400, x_range=(0, 20))
# set a range using a Range1d
p.y_range = Range1d(0, 15)
p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10)
show(p)
设置坐标类型
Categorical Axes
Datetime Axes
Log Scale Axes
Twin Axes
Annotations(注释)