使用Python Bokeh创建带有多个图形的图表

使用Python Bokeh创建带有多个图形的图表

Bokeh是Python中一个强大的数据可视化库,可帮助创建交互式和独特的Web可视化。Bokeh支持各种渲染技术,并提供了多种内置工具,用于创建具有多个图形的复杂可视化。本文将指导您通过使用Bokeh创建具有多个图形的图表的过程。此图表将不同的图形组合在一起,以显示多个数据系列在单个图表中,这为了解不同变量之间关系的更有效方式。

什么是图形(Glyphs)以及其主要优点是什么?

Glyphs是用于排版和图形设计中的字符、符号或图标的图形表示。它们经常用于文本的设计和布局,可以包括字母、数字、标点符号和其他符号。

使用Glyphs的一些主要优点包括 –

  • 改善可读性 - Glyphs可被设计为非常易于阅读,使读者能够快速准确地理解文本。

  • 提高美感 - Glyphs可用于为文本添加视觉趣味和吸引力,使其更具视觉吸引力和参与感。

  • 一致性与准确性 - Glyphs可被设计为在大小、形状和风格上一致,确保文本易于阅读和视觉协调。

  • 灵活性 - Glyphs可轻松缩放和修改,使它们可以在广泛的情境和应用中使用。

  • 国际化 - Glyphs可用于表示来自广泛的语言和书写体系的字符和符号,使其在国际化和本地化方面有用。

总的来说,Glyphs是排版和图形设计的强有力工具,可帮助提高文本的可读性、美感、一致性和灵活性。

它们的统计显著性

Glyphs本身不受统计显着性测试的影响,因为它们不是统计数据。但是,如果使用Glyphs用于在涉及统计分析的实验或研究中,可能会接受统计显着性测验。例如,如果一项研究正在研究不同字体对阅读速度或理解力的影响,则可能使用统计测试来确定字体之间的任何观察到的差异是否具有统计显着性。

一般来说,统计显着性测试用于确定观察到的差异或效应是否可能是由于偶然或随机变化造成的,还是是否反映了正在研究的人群中真正的差异或效应。使用的具体测试取决于研究问题、正在分析的数据类型以及对数据和人群作出的假设。

因此,虽然Glyphs本身不接受统计显着性测试,但它们可能在涉及需要统计分析以确定观察到的差异或效应是否具有统计显着性的实验或研究中使用。

先决条件

在我们深入任务之前,应该在您的系统上安装一些东西 –

建议设置清单 –

  • pip install pandas, bokeh

  • 预期用户将访问任何独立的IDE,例如VS-Code、PyCharm、Atom或Sublime text。

  • 即使可以使用在线Python编译器,如Kaggle.com、Google Cloud平台或任何其他,也可以使用。

  • Python更新版本。在撰写本文时,我使用的是3.10.9版本。

  • 知识使用Jupyter笔记本。

  • 知识和应用虚拟环境将有益但不是必需的。

  • 还预期人员将具有对统计和数学的良好理解。

创建基本图表

要创建一个图,我们首先需要导入必要的模块,例如 FigureColumnDataSource 和所需的图形。下面是一个使用 Bokeh 创建一个带有单个图形的折线图的示例代码段:

语法

from bokeh.plotting import figure, output_file, show
output_file("line.html")
p = figure(title="折线图", x_axis_label="X", y_axis_label="Y")

x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

p.line(x, y, line_width=2)

show(p)

输出

使用Python Bokeh创建带有多个图形的图表

此代码将创建带有 x 轴标签为“X”、y 轴标签为“Y”和标题“折线图”的线图。该线图将显示五个数据点及其对应的 x 和 y 值。

添加多个图形到图中

要向图中添加多个图形,我们需要使用 Figure 对象的 multi_line() 函数。multi_line() 函数接受多个 x 和 y 值序列,并为每个序列创建一个折线图。下面是一个创建带有多个图形的折线图的示例代码段:

from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource

output_file("multi_line.html")

p = figure(title="多个图形", x_axis_label="X", y_axis_label="Y")

x1 = [1, 2, 3, 4, 5]
y1 = [6, 7, 2, 4, 5]

x2 = [1, 2, 3, 4, 5]
y2 = [2, 4, 6, 8, 10]

source = ColumnDataSource(data=dict(x1=x1, y1=y1, x2=x2, y2=y2))
p.multi_line(xs=[source.data["x1"], source.data["x2"]],
   ys=[source.data["y1"], source.data["y2"]],
   line_color=["red", "blue"], line_width=[2, 2])
show(p)

输出

使用Python Bokeh创建带有多个图形的图表

在这里,我们创建了两组 x 和 y 值,并将它们存储在 ColumnDataSource 对象中。然后,我们将两个 x 和 y 值序列以及两个图形的颜色和线宽度传递给 multi_line() 函数。这将创建一个带有两个图形的线图,一个是红色的,一个是蓝色的,每个都有相应的 x 和 y 值。

最终程序、代码

# Basic plot

from bokeh.plotting import figure, output_file, show
output_file("line.html")

p = figure(title="折线图", x_axis_label="X", y_axis_label="Y")

x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

p.line(x, y, line_width=2)

show(p)

# Multiple graphs

from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource

output_file("multi_line.html")

p = figure(title="多个图形", x_axis_label="X", y_axis_label="Y")

x1 = [1, 2, 3, 4, 5]
y1 = [6, 7, 2, 4, 5]

x2 = [1, 2, 3, 4, 5]
y2 = [2, 4, 6, 8, 10]

source = ColumnDataSource(data=dict(x1=x1, y1=y1, x2=x2, y2=y2))

p.multi_line(xs=[source.data["x1"], source.data["x2"]],
   ys=[source.data["y1"], source.data["y2"]],
   line_color=["red", "blue"], line_width=[2, 2])

show(p)

结论

在本文档中,我们看到如何使用 Bokeh 创建带有多个图形的图。我们从图形的介绍开始,然后创建了一个带有单个图形的基本折线图。然后,我们使用 Figure 对象的 multi_line() 函数向图中添加了多个图形。使用 Bokeh 可以轻松创建交互式可视化,以帮助理解不同数据点之间的关系。Bokeh 允许您轻松创建美观的可视化,而无需担心可视化的细节。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程