利用Bokeh绘制3D曲面图的简洁代码示意图
Bokeh是一个用于构建交互式数据可视化的Python库。它提供了丰富的功能和可定制性,使用户能够创建各种类型的图表和可视化。
要利用Bokeh绘制3D曲面图,首先需要导入必要的库和模块。以下是一个绘制3D曲面图的简洁代码示例:
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
from bokeh.models import LinearColorMapper
from bokeh.models import ColorBar
from bokeh.transform import factor_cmap
from bokeh.io import output_notebook
# 准备数据
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
z = [[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7],
[4, 5, 6, 7, 8],
[5, 6, 7, 8, 9]]
# 创建3D曲面图的绘图对象
p = figure(title="3D曲面图", x_range=(min(x), max(x)), y_range=(min(y), max(y)))
# 创建颜色映射器
color_mapper = LinearColorMapper(palette="Viridis256", low=min([min(row) for row in z]), high=max([max(row) for row in z]))
# 创建颜色条
color_bar = ColorBar(color_mapper=color_mapper, label_standoff=12, location=(0,0), title="z")
# 创建数据源
source = ColumnDataSource(data=dict(x=x, y=y, z=z))
# 绘制3D曲面图
p.surface(x="x", y="y", z="z", source=source, fill_color=factor_cmap('z', palette="Viridis256", factors=[str(i) for i in range(min([min(row) for row in z]), max([max(row) for row in z])+1)]))
# 添加颜色条
p.add_layout(color_bar, 'right')
# 输出结果
output_notebook()
show(p)
在这个示例中,我们首先准备了一些数据,其中x和y是数据的行标和列标,z是一个二维数组,表示曲面图的高度。
然后通过figure函数创建一个绘图对象p,设置了图表的标题和起止范围。
接下来,我们创建了一个颜色映射器color_mapper,用于将数据中的数值映射到颜色空间。这里我们使用了Viridis256调色板来创建颜色映射器。
然后创建了一个颜色条color_bar,用于显示颜色映射器中的颜色和对应的数值。
接着创建了一个数据源source,其中包含了绘图所需的数据。
最后,通过调用p.surface函数绘制了3D曲面图,其中设置了数据源和填充颜色。
最后,通过调用output_notebook和show函数将结果输出到Jupyter Notebook中。
这段示例代码可以根据你的需求进行定制。你可以改变数据,调整图表的样式和显示效果,以及添加其他的Bokeh组件来增强图表的交互性。
下面是一个使用上面示例代码绘制的3D曲面图的例子:

在这个例子中,x和y轴的取值范围为1到5,曲面图的高度由z数组的值确定。颜色映射器将z数组的值映射到颜色空间,颜色条显示了颜色映射器的映射结果。
通过Bokeh的交互功能,你可以旋转、放大、缩小和平移这个图表,以及通过鼠标悬停在图表上查看详细信息。
希望这个简洁的示例代码能够帮助你开始使用Bokeh绘制3D曲面图,并且能够根据你的需求进行定制。
