Bokeh 使用Basic Glyphs做图

xiaoxiao2021-02-28  137

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(注释)

转载请注明原文地址: https://www.6miu.com/read-58998.html

最新回复(0)