使用bokeh.models绘制多维数据可视化图表
发布时间:2024-01-05 06:46:32
Bokeh是一个Python库,用于创建交互式、动态和漂亮的数据可视化图表。它支持多种图表类型和样式,并提供了丰富的自定义选项。其中,bokeh.models模块提供了用于创建和配置Bokeh图表组件的类。
下面将介绍几种使用bokeh.models绘制多维数据可视化图表的示例。
1. 散点图(Scatter plot)
散点图可以用于显示多个维度之间的关系。下面是一个使用bokeh.models的示例,创建一个散点图来显示两个变量之间的关系:
from bokeh.models import ColumnDataSource, Range1d, LinearAxis, DataRange1d
from bokeh.plotting import figure, show
# 创建数据
x = [1, 2, 3, 4, 5]
y = [3, 5, 4, 2, 6]
# 创建数据源
source = ColumnDataSource(data=dict(x=x, y=y))
# 创建绘图对象
p = figure(title="Scatter Plot", x_axis_label='X', y_axis_label='Y')
# 绘制散点图
p.circle('x', 'y', size=10, color='blue', source=source)
# 显示图表
show(p)
2. 条形图(Bar plot)
条形图可以用于比较不同类别的数据。下面是一个使用bokeh.models的示例,创建一个条形图来显示不同类别的数据:
from bokeh.models import ColumnDataSource, Range1d, LinearAxis, DataRange1d
from bokeh.plotting import figure, show
# 创建数据
categories = ['A', 'B', 'C']
values = [10, 20, 15]
# 创建数据源
source = ColumnDataSource(data=dict(categories=categories, values=values))
# 创建绘图对象
p = figure(title="Bar Plot", x_axis_label='Categories', y_axis_label='Values')
# 绘制条形图
p.vbar('categories', top='values', width=0.5, color='blue', source=source)
# 设置x轴刻度范围
p.x_range = Range1d(start=0, end=len(categories))
# 设置y轴刻度范围
p.y_range = Range1d(start=0, end=max(values))
# 显示图表
show(p)
3. 热力图(Heatmap)
热力图可以用于可视化二维数据,其中颜色表示数值大小。下面是一个使用bokeh.models的示例,创建一个热力图来显示二维数据:
import numpy as np from bokeh.models import ColumnDataSource, Range1d from bokeh.plotting import figure, show # 创建数据 data = np.random.rand(10, 10) # 创建数据源 source = ColumnDataSource(data=dict(data=data)) # 创建绘图对象 p = figure(title="Heatmap") # 绘制热力图 p.image(image=[data], x=0, y=0, dw=10, dh=10, palette="Viridis256", source=source) # 设置x轴刻度范围 p.x_range = Range1d(start=0, end=10) # 设置y轴刻度范围 p.y_range = Range1d(start=0, end=10) # 显示图表 show(p)
总结:
以上是几个使用bokeh.models绘制多维数据可视化图表的示例。通过使用bokeh.models中提供的各种类,可以快速创建出各种类型的图表并进行自定义设置。Bokeh还支持交互式功能,可以轻松的添加工具栏、滚动、缩放和悬停等功能,以增强数据的可视化效果。
