卓越方达logo200*800

所有基于 Python 的可视化库均可通过 KNIME 轻松访问

更新 2024年8月23日

作为一个开放平台,KNIME 一直致力于让用户轻松访问他们已经知道和喜爱的所有心爱的工具和库。为此,在最新的 KNIME 4.7 版本中,KNIME Python 集成得到了增强,可以更轻松地访问各种基于 Python 的可视化库,包括 Matplotlib、Seaborn、Plotly、Altair 等。

新的 Python 视图节点使用户能够使用这些常用库以及以 PNG、SVG、JPEG 或独立 html 文档形式生成可视化的任何其他库创建可视化效果。

下面,查找有关如何在 KNIME 中创建基于 Python 的可视化并将其部署为基于浏览器的数据应用的演练。

alt
图 1:除了 KNIME 原生可视化节点和扩展(KNIME JavaScript 视图、KNIME 视图 (Labs)、KNIME JavaScript 视图 (Labs)、KNIME Plotly 之外,Python 视图节点还允许您使用任何 Python 可视化库。

安装 Python 集成

要开始使用 Python 视图节点创建基于 Python 的可视化,请安装 KNIME Python 集成,然后将 Python 视图节点拖到 KNIME 中的工作台中。

KNIME Python 集成将捆绑环境安装到您的系统中。三个 Python 库(Matplotlib、Seaborn 和 Plotly)可在 Python View 节点中“开箱即用”。

要使用捆绑环境中不可用的可视化库(例如 Altair 或 GGplot 库),请使用 Conda Environment Propagation 节点选择自定义环境。(阅读有关使用 Conda 和 KNIME 管理 Python 环境的更多信息)。

安装集成后,即可开始在 KNIME 中创建基于 Python 的可视化。

在 KNIME 中创建静态或基于 Python 的交互式可视化

使用 Python 视图节点可以创建静态和交互式可视化。

基于 Python 的静态可视化生成 PNG、SVG、JPEG 图像甚至 HTML 文档。这些通常用于简单的可视化,以突出关键见解,例如同比趋势或销售分布。用户无法与这些静态可视化效果进行交互,也无法更改任何图表属性,例如轴或单位。

基于 Python 的交互式可视化与本机 KNIME View 节点共享相同的“交互性”属性,并允许用户与分析进行交互。例如,用户可以在第一个可视化中选择特定区域或时间范围,并将此选择应用于其他可视化集。这有助于用户更深入地进行分析,以找出他们最感兴趣的内容。它们是探索和理解基于快速变化数据的分析的简单方法。

让我们看看如何使用 Python 视图节点创建静态和交互式可视化。

1. 使用 Python 视图节点创建静态可视化

您可以使用流行的库(如 Matplotlib、Seaborn 等)创建静态可视化效果。这些库以 Python 对象的形式创建可视化输出。

在本节中,我们将向您展示如何使用 Seaborn 库创建配对图的简单示例。我们将可视化鸢尾花数据集的配对图,这些配对图可用于研究鸢尾花在各种特征中的分布。

打开 Python 视图节点的代码编辑器,并使用以下命令将 python 对象分配给节点的输出视图:

.请注意,代码块 1 显示了用于创建静态可视化的整个 Python 代码。

Python 视图节点还提供特殊的视图实现。例如,如果您使用的是 seaborn 库,则将返回值

;或者使用 matplotlib,返回值

添加到节点的输出视图。

您可以在视图的 KNIME Python API 文档中找到更多信息

代码块 1 显示了 Python 脚本节点内的 Python 代码段。首先,我们导入所需的库(在本例中为 Seaborn)以及作为 KNIME 和 Python 之间主要接触点的 knime.scripting.io。输入数据被读取为 pandas 数据帧。

接下来,我们使用 Seaborn 作为 Python 对象创建配对图。使用以下命令为该对象分配节点的输出视图:

将代码块插入 Python 视图节点后,右键单击该节点并选择“执行并打开视图”选项。这将执行节点并启动节点视图,如图 2 所示。

 
alt
图 2:使用 Python Seaborn 库的静态可视化
 

2. 创建基于 Python 的交互式可视化

Plotly Python 库是一个交互式开源绘图库,支持 40 多种独特的图表类型,涵盖广泛的统计、金融、地理、科学和 3 维用例。

在下一个示例中,我们希望使用此库基于住房数据集生成房屋的交互式散点图。它将按平均房间和平均卧室可视化房屋,用户将能够按房屋年龄选择时间范围。

下面的代码块 2 显示了 Python 视图节点代码编辑器中的 python 代码片段。

首先,我们导入基本库,在本例中为 Plotly,并导入 knime.scripting.io,与前面的示例类似,它充当 KNIME 和 Python 之间的主要接触点。输入数据被读取为 pandas 数据帧。

接下来,我们创建散点图可视化。我们使用以下命令将 Plotly 可视化分配给节点的输出视图:

您还可以将参数设置为

如果您希望您的绘图与其他绘图同步(有关详细信息,请参阅 API 参考)。

在下面的图 3 中,您可以看到创建为节点视图的交互式可视化效果。散点图显示反映用户在散点图的图例面板中选择的范围(“房屋年龄”)的数据点,位于散点图的右侧。

alt
图 3:使用 Plotly 库和 Python 视图节点进行交互式可视化。

将基于 Python 的可视化作为数据应用程序部署到 KNIME Business Hub

您可以通过 KNIME Business Hub 将可视化部署为基于浏览器的数据应用程序,从而与他人共享您的可视化。

通过将包含 Python 视图节点(或任何其他 KNIME 的可视化节点)的工作流封装到 KNIME 组件中,为可视化构建数据应用。这会产生所谓的“复合”视图,即仪表板中不同图表和图形的组合。

在我们的示例中,我们使用 Python 视图节点创建了一个“预测房价”组件。图 4 显示了 Predict House Prices 组件中的工作流。

 
alt
图 4:使用 Python 视图节点构建生成交互式视图的组件,并将其作为数据应用程序部署到 KNIME Business Hub。

我们的预测房价组件在房价数据集上训练线性回归模型,然后生成复合视图。该视图显示 3 个可视化效果:由 Python 视图节点创建的地图,以及使用 KNIME 视图节点创建的散点图和表视图。

通过这些可视化,您可以交互式地研究模型对房价的预测。例如,您可以在地图中选择一个区域,此选择将应用于复合视图中的所有图表和图形。这个 KNIME 工作流程“使用 Plotly 库使用 Python 视图节点进行可视化”在 KNIME 社区中心公开提供。

要使工作流可供其他用户使用,请将工作流上传到 KNIME Business Hub,并将其部署为数据应用程序。在图 5 中,您可以看到数据应用。数据应用的加载方式与任何网页相同。

用户可以通过将鼠标拖动到框形中来选择地图上的感兴趣区域,此选择将传播到数据应用程序中的其他 KNIME 视图中,以可视化所选区域中的模型预测和记录。

alt
图 5:只需使用 Web 浏览器即可访问部署在 KNIME Business Hub 上的数据应用程序

灵活地使用您喜欢的工具

通过 KNIME-Python 集成利用您最喜欢的基于 Python 的可视化的能力加强了我们对提供开放系统的承诺。

通过与KNIME生态系统中所有相关工具和环境的集成,您可以灵活地从您喜欢的不同工具和库中汲取精华,并将其整合到KNIME中。