Bokeh 用符号绘图
任何绘图通常都是由一个或多个几何图形组成的,如 直线、圆、矩形 等。这些形状具有关于相应数据集的视觉信息。在Bokeh术语中,这些几何形状被称为Gylphs。使用 bokeh.plotting界面 构建的Bokeh图使用一套默认的工具和样式。然而,它可以使用可用的绘图工具来定制样式。
绘图的类型
使用字形创建的不同类型的绘图,如下所示
线形图
这种类型的图对于以线的形式可视化X轴和Y轴上的点的运动很有用。它被用来进行时间序列分析。
柱状图
这种图通常用于显示数据集中某一列或某一领域的每个类别的数量。
补丁图
这种图表示在一个特定颜色阴影下的点的区域。这种类型的图被用来区分同一数据集中的不同组别。
散点图
这种类型的图用于可视化两个变量之间的关系,并表明它们之间的相关强度。
不同的字形图是通过调用图类的适当方法形成的。图的对象是通过以下构造函数获得的-
from bokeh.plotting import figure
figure(**kwargs)
图表对象可以通过各种关键字参数进行定制。
序号 | 标题 | 设置图的标题 |
---|---|---|
1 | x_axis_label | 设置X轴的标题 |
2 | y_axis_label | 设置y轴的标题 |
3 | plot_width | 设置图形的宽度 |
4 | plot_height | 设置图形的高度 |
线形图
Figure对象的 line()方法 在Bokeh图上添加了一个线条字形。它需要x和y参数作为数据数组来显示它们的线性关系。
from bokeh.plotting import figure, show
fig = figure()
fig.line(x,y)
show(fig)
下面的代码在两组数值之间以Python列表对象的形式渲染了一个简单的线图-
from bokeh.plotting import figure, output_file, show
x = [1,2,3,4,5]
y = [2,4,6,8,10]
output_file('line.html')
fig = figure(title = 'Line Plot example', x_axis_label = 'x', y_axis_label = 'y')
fig.line(x,y)
show(fig)
输出
条形图
图对象有两种不同的方法来构建条形图
hbar()
条形图在绘图宽度上水平显示。 hbar()方法 有以下参数 –
编号 | y | 水平条的中心的y坐标。 |
---|---|---|
1 | height | 竖条的高度。 |
2 | right | 右侧边缘的X坐标。 |
3 | left | 左边边缘的X坐标。 |
以下代码是一个使用Bokeh的 水平条 的例子。
from bokeh.plotting import figure, output_file, show
fig = figure(plot_width = 400, plot_height = 200)
fig.hbar(y = [2,4,6], height = 1, left = 0, right = [1,2,3], color = "Cyan")
output_file('bar.html')
show(fig)
输出
vbar()
条形图的高度是垂直显示的。 vbar()方法 有以下参数-
编号 | x | 竖条中心的x坐标。 |
---|---|---|
1 | width | 竖条的宽度。 |
2 | top | 顶部边缘的Y坐标。 |
3 | bottom | 底部边缘的Y坐标。 |
以下代码显示 垂直条形图
from bokeh.plotting import figure, output_file, show
fig = figure(plot_width = 200, plot_height = 400)
fig.vbar(x = [1,2,3], width = 0.5, bottom = 0, top = [2,4,6], color = "Cyan")
output_file('bar.html')
show(fig)
输出
补丁图
在Bokeh中,将空间的某一区域用特定的颜色进行着色,以显示具有类似属性的区域或组,这种图被称为补丁图。图对象有 patch() 和 patches() 方法用于此目的。
patch()
这个方法在给定的图上添加补丁字形。该方法有以下参数 –
1 | x | 补丁点的X坐标。 |
---|---|---|
2 | y | 补丁中各点的Y坐标。 |
通过以下Python代码可以得到一个简单的 补丁图
from bokeh.plotting import figure, output_file, show
p = figure(plot_width = 300, plot_height = 300)
p.patch(x = [1, 3,2,4], y = [2,3,5,7], color = "green")
output_file('patch.html')
show(p)
输出
patches()
该方法用于绘制多个多边形补丁。它需要以下参数 –
1 | xs | 所有补丁的X坐标,以 “列表的列表 “形式给出。 |
---|---|---|
2 | ys | 所有补丁的Y坐标,以 “列表 “的形式给出。 |
作为patches()方法的一个例子,请运行以下代码
from bokeh.plotting import figure, output_file, show
xs = [[5,3,4], [2,4,3], [2,3,5,4]]
ys = [[6,4,2], [3,6,7], [2,4,7,8]]
fig = figure()
fig.patches(xs, ys, fill_color = ['red', 'blue', 'black'], line_color = 'white')
output_file('patch_plot.html')
show(fig)
输出
散点图
散点图是非常常用于确定两个变量之间的双变量关系。使用Bokeh为它们添加了增强的交互性。散点图是通过调用Figure对象的scatter()方法获得的。它使用以下参数 –
1 | x | 中心X坐标的值或字段名 |
---|---|---|
2 | y | 中心Y坐标的值或字段名 |
3 | size | 以屏幕为单位的尺寸值或字段名 |
4 | marker | 标记类型的值或字段名 |
5 | color | 设置填充和线条颜色 |
在Bokeh中定义了以下标记类型常量。-
- Asterisk
- Circle
- CircleCross
- CircleX
- Cross
- Dash
- Diamond
- DiamondCross
- Hex
- InvertedTriangle
- Square
- SquareCross
- SquareX
- Triangle
- X
以下Python代码生成了带有圆圈标记的散点图。
from bokeh.plotting import figure, output_file, show
fig = figure()
fig.scatter([1, 4, 3, 2, 5], [6, 5, 2, 4, 7], marker = "circle", size = 20, fill_color = "grey")
output_file('scatter.html')
show(fig)
输出