Bokeh: 保存绘图(作为HTML)但不显示

Bokeh: 保存绘图(作为HTML)但不显示

在本文中,我们将介绍如何使用Bokeh绘图库在Python中创建交互式绘图,并将其保存为HTML文件而不显示在浏览器中。

阅读更多:Bokeh 教程

Bokeh简介

Bokeh是一个用于创建交互式绘图的Python库,它支持大规模数据的可视化和高度定制的绘图。Bokeh提供了丰富的绘图功能,并支持将绘图保存为HTML文件、图片或更多的输出格式。我们将使用Bokeh的save函数来保存绘图为HTML文件。

创建一个简单的折线图

让我们从一个简单的折线图开始,图示了每天的温度变化。首先,我们需要安装Bokeh库。在命令行中输入以下命令安装Bokeh:

pip install bokeh

接下来,让我们编写以下代码来创建折线图:

from bokeh.plotting import figure, output_file, save

# 创建数据
x = [1, 2, 3, 4, 5]
y = [20, 25, 18, 22, 30]

# 输出文件为HTML格式
output_file("line_plot.html")

# 创建绘图对象
p = figure(title="温度变化", x_axis_label="日期", y_axis_label="温度", width=500, height=300)

# 添加折线
p.line(x, y, legend_label="温度", line_width=2)

# 保存绘图为HTML文件
save(p)

运行以上代码后,将会生成一个名为line_plot.html的HTML文件,其中包含了我们创建的折线图。你可以通过双击文件来在浏览器中打开它,或者将其传递给其他人。

保存多个图形

Bokeh还支持创建多个图形并将它们保存在一个HTML文件中。让我们创建一个包含两个子图的布局。

from bokeh.layouts import row
from bokeh.models import ColumnDataSource

# 创建数据
x = [1, 2, 3, 4, 5]
y1 = [20, 25, 18, 22, 30]
y2 = [10, 15, 12, 20, 25]

# 输出文件为HTML格式
output_file("layout.html")

# 创建绘图对象
p1 = figure(title="温度变化", x_axis_label="日期", y_axis_label="温度", width=400, height=300)
p2 = figure(title="湿度变化", x_axis_label="日期", y_axis_label="湿度", width=400, height=300)

# 创建数据源
source = ColumnDataSource(data={'x': x, 'y1': y1, 'y2': y2})

# 添加折线
p1.line('x', 'y1', source=source, legend_label="温度", line_width=2)
p2.line('x', 'y2', source=source, legend_label="湿度", line_color='red', line_width=2)

# 创建布局
layout = row(p1, p2)

# 保存布局为HTML文件
save(layout)

上述代码将会生成一个名为layout.html的HTML文件,其中包含了两个子图的布局。通过打开该文件,你可以在浏览器中看到两个图形。

高级选项

Bokeh还提供了许多高级选项来自定义绘图。你可以设置标题、坐标轴标签、线条样式、图例位置等。

from bokeh.models import Legend, LegendItem

# ...

# 设置标题样式
p.title.text_color = "blue"
p.title.text_font = "Arial"
p.title.text_font_style = "bold"

# 设置坐标轴样式
p.yaxis.axis_label_text_color = "green"
p.xaxis.axis_label_text_font = "Arial"

# 自定义线条样式
line = p.line(x, y, legend_label="温度", line_color="red", line_width=2)
line.glyph.line_dash = "4 4"  # 短划线

# 设置图例位置
legend = Legend(items=[LegendItem(label="温度", renderers=[line])], location="top_left")
p.add_layout(legend)

通过使用上述代码中的参数和方法,你可以根据自己的需求来自定义绘图的样式。

总结

通过使用Bokeh库可以方便地创建交互式绘图,并将其保存为HTML文件以供分享或进一步分析。我们可以通过使用save函数来保存绘图,也可以将多个图形组合成一个布局保存为HTML文件。Bokeh还提供了丰富的选项来自定义绘图的样式和布局。希望本文能够帮助你使用Bokeh创建出令人惊叹的绘图!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Bokeh 问答